Diseño de ruta de recursos REST

Estoy desarrollando un servicio REST, y estoy tratando de adherirme a las convenciones y pautas del doctor Roy Fielding.

Imagino mi servicio como un punto final que expone un conjunto de recursos. Un URI identifica un recurso y los clientes de la API pueden manipular los recursos mediante el uso de la semántica HTTP (es decir, diferentes verbos HTTP se asignan a las operaciones correspondientes sobre los URI).

Las directrices establecen que estos URI deben definirse de manera jerárquica, reflejando la jerarquía de objetos. Esto resulta útil en la creación de recursos, porque en el backend necesitamos los datos para realizar la operación de creación. Sin embargo, en manipulaciones adicionales, el servicio ni siquiera va a utilizar gran parte de la información incluida en el URI, ya que generalmente la identificación del recurso solo es suficiente para identificar de forma única el objetivo de la operación.

Un ejemplo: considere un Api que expone la creación y gestión de productos. Considere también que un producto está asociado con una marca. En la creación tiene sentido que se realice la siguiente acción: HTTP POST / Brand / {brand_id} / Product [Cuerpo que contiene la entrada necesaria para la creación del producto]

La creación devuelve un HTTP 201 creado con un encabezado de ubicación que expone la ubicación del producto recién creado.

En manipulaciones adicionales, los clientes pueden acceder al producto haciendo: HTTP PUT / Brand / {brand_id} / Product / {product_id} HTTP DELETE / Brand / {brand_id} / Product / {product_id} etc.

Sin embargo, dado que la Id. Del producto es universal en el alcance del producto, las siguientes manipulaciones se podrían realizar de la siguiente manera: / Producto / {product_id} Solo mantengo el prefijo / Brand / {brand_id} por razones de coherencia. De hecho, la identificación de la marca está siendo ignorada por el servicio. ¿Cree que esta es una buena práctica y es razonable para mantener una definición de Interfaz de Servicio clara e inequívoca? ¿Cuáles son los beneficios de hacer esto, y es este el camino a seguir?

También se apreciarán los indicadores sobre las mejores prácticas de definición de URI.

Gracias por adelantado

Respuestas a la pregunta(2)

Su respuesta a la pregunta