Cześć,
ostatnio próbuję napisać proste REST API. Poczytałem co nieco o dobrych praktykach i znalazłem, że dobrze jest dostarczać "zagnieżdżone" endpointy (swoją drogą nie wiem jakiej nomenklatury używać do tego, co chcę opisać). Ale do rzeczy.
Przykładowo : mam relację ManyToMany pomiędzy encją Team i Member - każdy Team ma wiele Memberów, a każdy Member należy do wielu Teamów. I oczywiste wydają się takie endpointy (na razie skupiam się na GET):
GET /teams
GET /members
GET /teams/{id}
GET /members/{id}
Idąc dalej tym tokiem wydaje się sensowne, aby zapewnić również:
GET /teams/{id}/members
GET /members/{id}/teams
I jeszcze dalej...
GET /teams/{id}/members/{id}
GET /members/{id}/teams/{id}
GET /teams/{id}/members/{id}/teams
GET /members/{id}/teams/{id}/members
I tak w koło Macieju...
Stąd moje pytanie - czy taki właśnie jest zamysł REST API czy czegoś nie do końca rozumiem? Jeśli tak, to czy istnieje jakiś sprytny trik (jakieś redirecty?) na zrealizowanie czegoś takiego? Piszę to w Spring Boocie ze Spring Data.
I na koniec taka moja obserwacja - szokujące, ile jest tutoriali uczących złych praktyk i łamiących wszystkie zasady RESTa :D