Servizi Web RESTful - Indirizzamento
L'indirizzamento si riferisce all'individuazione di una o più risorse che si trovano sul server. È analogo individuare un indirizzo postale di una persona.
Ogni risorsa nell'architettura REST è identificata dal suo URI (Uniform Resource Identifier). Un URI ha il seguente formato:
<protocol>://<service-name>/<ResourceType>/<ResourceID>
Lo scopo di un URI è individuare una o più risorse sul server che ospita il servizio web. Un altro attributo importante di una richiesta è VERBO che identifica l'operazione da eseguire sulla risorsa. Ad esempio, nel capitolo Servizi Web RESTful - Prima applicazione , l'URI èhttp://localhost:8080/UserManagement/rest/UserService/users e il VERBO è GET.
Costruire un URI standard
I seguenti sono punti importanti da considerare durante la progettazione di un URI:
Use Plural Noun- Usa un nome plurale per definire le risorse. Ad esempio, abbiamo utilizzato gli utenti per identificare gli utenti come una risorsa.
Avoid using spaces- Utilizzare il trattino basso (_) o il trattino (-) quando si utilizza un nome di risorsa lungo. Ad esempio, utilizza authorized_users invece di% 20users autorizzati.
Use lowercase letters - Sebbene l'URI non faccia distinzione tra maiuscole e minuscole, è una buona pratica mantenere l'URL solo in lettere minuscole.
Maintain Backward Compatibility- Poiché il servizio Web è un servizio pubblico, una volta reso pubblico dovrebbe essere sempre disponibile un URI. Nel caso in cui l'URI venga aggiornato, reindirizza l'URI precedente a un nuovo URI utilizzando il codice di stato HTTP, 300.
Use HTTP Verb- Usa sempre i verbi HTTP come GET, PUT e DELETE per eseguire le operazioni sulla risorsa. Non è consigliabile utilizzare il nome delle operazioni nell'URI.
Esempio
Di seguito è riportato un esempio di un URI scadente per recuperare un utente.
http://localhost:8080/UserManagement/rest/UserService/getUser/1
Di seguito è riportato un esempio di un buon URI per recuperare un utente.
http://localhost:8080/UserManagement/rest/UserService/users/1