Header Location bez endpointu GET

0

Mam endpointy POST /api/memberships, DELETE /api/memberships/{id} i może kiedyś PUT /api/memberships/{id}. Nie mam za to endpointu GET /api/memberships/{id}. Front potrzebuje znać id dodanego membership tuż po dodaniu. Czy poprawnie będzie zwrócić w POST header Location wskazujący na /api/memberships/{id}?

2

To co tworzy POST, że nie można potem się do tego dostać?

Jeśli dobrze kojarzę to standard nie definiuje* co powinno zwracać POST (ani chyba wprost nie zabrania) to możesz w body wrzucić {"id":1}

*niech mnie ktoś poprawi jeśli się myle

0

Mam tylko endpointy /api/user/{userId}/groups i /api/group/{groupId}/members, bo tylko tych potrzebuję. :(

2

Tak będzie poprawnie, nawet masz wbudowaną metodę która ustawia to za Ciebie:

Microsoft.AspNetCore.Mvc.CreatedResult Created (string uri, object value);

1

Ja bym tak nie robił, bo to trochę WTF że dostajesz location które daje 404 ;) Ty odejdziesz, przyjdzie nowy frontendowiec i nikt nie będzie wiedział co się dzieje. Ja bym jednak zwrócił body z tego POSTa i tam przekazał detale utworzonego entry.

1 użytkowników online, w tym zalogowanych: 0, gości: 1