Projektuję interfejs API usługi REST i utknąłem na właściwej drodze do zagnieżdżania zasobów.
Zasoby: partnerzy, bilety, ustawienia
Połączenia między zasobami:
- partner ma wiele biletów,
- partner ma ustawione ustawienia,
Logika biznesowa:
- możesz wymienić wszystkich partnerów jako anonimowych użytkowników,
- możesz dodać nowy bilet do określonego partnera jako użytkownik anonimowy,
- tylko partner może wymienić swoje bilety,
- tylko partner może modyfikować swoje bilety,
- tylko partner może wymienić ustawienia,
- tylko partner może modyfikować ustawienia,
Co robiłem do tej pory:
Zasoby partnerów
GET / partnerzy - lista wszystkich partnerów
GET / partners /: id - pokaż szczegóły partnera określonego przez: id parametr
GET / partners /: partner_id / bilety - lista biletów partnera
GET / partnerzy /: partner_id / bilety /: id - szczegóły biletu określonego partnera
POST / partnerzy /: identyfikator_partnera / bilety - zapisuje nowy bilet
PUT / partnerzy /: identyfikator_partnera / bilety /: id - aktualizuje bilet określony przez: identyfikator parametru
GET / partnerzy /: identyfikator_partnera / ustawienia - ustawienia listy partnera
PUT / partners /: partner_id / settings - zaktualizuj ustawienia partnera
Problem / pytanie
Czy byłby właściwy sposób na dzielenie zagnieżdżonych zasobów (biletów, ustawień) w celu oddzielenia zasobów lub duplikowania ich jako oddzielnych zasobów?
Na przykład
GET / bilety /: id
POST / bilety
PUT / bilety /: id
GET / ustawienia
PUT / ustawienia