How should I name my endpoint while adhering to the REST naming conventions?
REST non si cura di quale ortografia si usa per gli identificatori di risorse.
Pensa a come dovresti lavorare con l'esercizio nel tuo browser web. Dovresti compilare un modulo e inviare il lavoro; torneresti una sorta di ricevuta, che includerebbe un link alla pagina di stato. Puoi caricare / aggiornare la pagina di stato per vedere come stanno andando le cose. Se il server è stato disattivato a metà elaborazione, il processo non avrebbe avuto esito positivo e la pagina di stato sarebbe stata aggiornata per riflettere ciò. Ad esempio, potresti trovare un modulo su quella pagina che, quando lo invii, riprende il lavoro.
In nessun momento di questo flusso, il cliente deve capire come si scrive un identificatore. Basta seguire i link e compilare i moduli.
That's REST.
/a216fc62-6e0b-44da-8744-c7a8b4aae043
è un identificatore perfettamente ragionevole per una risorsa che gestirà un messaggio.
Se è così, lo è anche: /batch-job/restart
Se vuoi che l'URI sia hackerabile , questo è anche bene - ma non è un vincolo REST. Ci sono buone ragioni per cui potresti voler rendere l'URI difficile da hackerare .
È assolutamente bene POSTARE un messaggio a un endpoint e fare in modo che l'endpoint capisca cosa fare in base al contenuto del corpo del messaggio. Quindi puoi avere un unico endpoint che gestisce più tipi di messaggi. Questo può essere davvero comodo perché il messaggio POST invalida la rappresentazione della risorsa memorizzata nella cache da qualsiasi partecipante che può leggi la richiesta e la risposta.
Ad esempio, poiché sai che la "risorsa della pagina di stato" sarà modificata dall'istruzione per riprendere il lavoro, potrebbe essere sensato inviare il messaggio di ripresa a quella risorsa.