Nous concevons actuellement une API REST pour accéder aux données client classiques. L'un des éléments de l'API sont les actifs d'un utilisateur. Les actifs sont ajoutés sous un service donné. L'API backend n'ajoutera un actif à un utilisateur que pour un service donné. Il n'y a donc pas de relation Utilisateur - Actif, mais une relation Utilisateur - [Service] - Actif.
Nos URI ressembleront à ceci:
/users/{id}/assets/{id}/services/{id}
Les utilisations de l'API connaîtront l'ID d'actif et l'ID de service pour créer une nouvelle entrée. Ce avec quoi nous nous débattons, c'est la création de cette relation.
Une façon simple serait de publier toute la relation avec /users/{id}/assets/
POST /users/{id}/assets
{asset:${id}, service:{id}, attribute1:"{var}", attribute2:"{var}"}
mais alors nous ne créons pas réellement un actif comme l'URI pourrait l'indiquer, mais une relation actif-service.
Comme alternative, nous considérons POST'ing à l'URI adressant la relation, comme ceci:
POST /users/{id}/assets/{id}/service/{id}
{attribute1:"{var}", attribute2:"{var}"}
Mais dans ce cas, le chemin de ressource /users/{id}/assets/{id}
n'existera pas avant le POST et sera créé comme effet secondaire.
Le POST sur un chemin de ressource qui n'existe pas encore est-il autorisé?
Merci pour vos pensées,
Gerard.