Servicios web RESTful: direccionamiento

El direccionamiento se refiere a ubicar un recurso o varios recursos que se encuentran en el servidor. Es análogo localizar la dirección postal de una persona.

Cada recurso en la arquitectura REST se identifica por su URI (Identificador uniforme de recursos). Un URI tiene el siguiente formato:

<protocol>://<service-name>/<ResourceType>/<ResourceID>

El propósito de un URI es localizar un recurso (s) en el servidor que aloja el servicio web. Otro atributo importante de una solicitud es VERBO que identifica la operación que se realizará en el recurso. Por ejemplo, en el capítulo Servicios web RESTful - Primera aplicación , el URI eshttp://localhost:8080/UserManagement/rest/UserService/users y el VERBO es OBTENER.

Construyendo un URI estándar

Los siguientes son puntos importantes que deben tenerse en cuenta al diseñar un URI:

  • Use Plural Noun- Usar sustantivo plural para definir recursos. Por ejemplo, hemos utilizado usuarios para identificar a los usuarios como un recurso.

  • Avoid using spaces- Utilice guión bajo (_) o guión (-) cuando utilice un nombre de recurso largo. Por ejemplo, utilice usuarios_autorizados en lugar de% 20usuarios autorizados.

  • Use lowercase letters - Aunque URI no distingue entre mayúsculas y minúsculas, es una buena práctica mantener la URL solo en minúsculas.

  • Maintain Backward Compatibility- Dado que el servicio web es un servicio público, una URI una vez que se hace público debería estar siempre disponible. En caso de que el URI se actualice, redirija el URI anterior a un nuevo URI utilizando el código de estado HTTP, 300.

  • Use HTTP Verb- Utilice siempre verbos HTTP como GET, PUT y DELETE para realizar las operaciones en el recurso. No es bueno usar el nombre de las operaciones en el URI.

Ejemplo

A continuación, se muestra un ejemplo de un URI deficiente para recuperar un usuario.

http://localhost:8080/UserManagement/rest/UserService/getUser/1

A continuación se muestra un ejemplo de un buen URI para buscar un usuario.

http://localhost:8080/UserManagement/rest/UserService/users/1