Actualmente estamos diseñando una API REST para acceder a los datos clásicos de los clientes. Uno de los elementos en la API son los activos de un usuario. Los activos se agregan bajo un servicio dado. La API de back-end solo agregará un activo a un usuario en un servicio determinado. Por lo tanto, no hay una relación Usuario - Activo, sino una relación Usuario - [Servicio] - Activo.
Nuestros URI se verán así:
/users/{id}/assets/{id}/services/{id}
Los usos de la API conocerán la identificación del activo y la identificación del servicio para crear una nueva entrada. Con lo que estamos luchando es con la creación de esta relación.
Una forma directa sería publicar toda la relación con /users/{id}/assets/
POST /users/{id}/assets
{asset:${id}, service:{id}, attribute1:"{var}", attribute2:"{var}"}
pero en realidad no estamos creando un activo como podría indicar el URI, sino una relación de servicio de activos.
Como alternativa, estamos considerando POST'ing al URI que aborda la relación, así:
POST /users/{id}/assets/{id}/service/{id}
{attribute1:"{var}", attribute2:"{var}"}
Pero en este caso, la ruta del recurso /users/{id}/assets/{id}no existirá antes de la POST y se creará como un efecto secundario.
¿POST'ing a una ruta de recursos que aún no existe está permitido?
Gracias por tus pensamientos
Gerard