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}?
Header Location bez endpointu GET
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Gdańsk
- Postów: 647
0
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Poznań
- Postów: 797
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
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Gdańsk
- Postów: 647
0
Mam tylko endpointy /api/user/{userId}/groups i /api/group/{groupId}/members, bo tylko tych potrzebuję. :(
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Kraków
- Postów: 1114
2
Tak będzie poprawnie, nawet masz wbudowaną metodę która ustawia to za Ciebie:
Microsoft.AspNetCore.Mvc.CreatedResult Created (string uri, object value);
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
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.