Obecnie projektujemy interfejs API REST w celu uzyskania dostępu do klasycznych danych klientów. Jednym z elementów interfejsu API są zasoby użytkownika. Aktywa są dodawane w ramach danej usługi. Interfejs API zaplecza doda zasób tylko do użytkownika w ramach danej usługi. Zatem nie ma relacji użytkownik - zasób, ale relacja użytkownik - [usługa] - zasób.
Nasze URI będą wyglądać następująco:
/users/{id}/assets/{id}/services/{id}
Zastosowania interfejsu API będą znały identyfikator zasobu i identyfikator usługi do utworzenia nowego wpisu. Zmagamy się z tworzeniem tej relacji.
Jednym prostym sposobem byłoby opublikowanie całej relacji /users/{id}/assets/
POST /users/{id}/assets
{asset:${id}, service:{id}, attribute1:"{var}", attribute2:"{var}"}
ale w rzeczywistości nie tworzymy zasobu, jak może wskazywać identyfikator URI, ale relację między zasobami a usługą.
Alternatywnie rozważamy wysyłanie testu POST do identyfikatora URI adresującego relację, w następujący sposób:
POST /users/{id}/assets/{id}/service/{id}
{attribute1:"{var}", attribute2:"{var}"}
Ale w tym przypadku ścieżka zasobów /users/{id}/assets/{id}nie będzie istniała przed testem POST i zostanie utworzona jako efekt uboczny.
Czy przesyłanie POST do ścieżki zasobów, która jeszcze nie istnieje, jest w ogóle dozwolone?
Dzięki za twoje myśli
Gerard