Derzeit entwickeln wir eine REST-API für den Zugriff auf klassische Kundendaten. Eines der Elemente in der API sind die Assets eines Benutzers. Die Assets werden unter einem bestimmten Service hinzugefügt. Die Backend-API fügt einem Benutzer unter einem bestimmten Dienst nur ein Asset hinzu. Es gibt also keine Benutzer - Asset-Beziehung, sondern eine Benutzer - [Service] - Asset-Beziehung.
Unsere URIs sehen folgendermaßen aus:
/users/{id}/assets/{id}/services/{id}
Die Verwendung der API kennt die Asset-ID und die Service-ID, um einen neuen Eintrag zu erstellen. Wir haben mit der Schaffung dieser Beziehung zu kämpfen.
Ein einfacher Weg wäre, die gesamte Beziehung zu zu posten /users/{id}/assets/
POST /users/{id}/assets
{asset:${id}, service:{id}, attribute1:"{var}", attribute2:"{var}"}
Dann erstellen wir jedoch kein Asset, wie der URI möglicherweise anzeigt, sondern eine Asset-Service-Beziehung.
Als Alternative erwägen wir, POST an die URI zu senden, um die Beziehung wie folgt zu behandeln:
POST /users/{id}/assets/{id}/service/{id}
{attribute1:"{var}", attribute2:"{var}"}
In diesem Fall ist der Ressourcenpfad /users/{id}/assets/{id}
jedoch nicht vor dem POST vorhanden und wird als Nebeneffekt erstellt.
Ist POST auf einen Ressourcenpfad, der noch nicht vorhanden ist, überhaupt zulässig?
Danke für deine Gedanken,
Gerard.