FYI, odpowiedzi tutaj są błędne.
Widzieć:
https://restfulapi.net/rest-api-design-tutorial-with-example/
https://restfulapi.net/rest-put-vs-post/
https://restfulapi.net/http-methods/#patch
POŁOŻYĆ
Używaj interfejsów API PUT głównie do aktualizowania istniejącego zasobu (jeśli zasób nie istnieje, API może zdecydować o utworzeniu nowego zasobu lub nie). Jeśli nowy zasób został utworzony przez PUT API, serwer pochodzenia MUSI poinformować agenta użytkownika za pośrednictwem odpowiedzi HTTP 201 (Utworzono), a jeśli istniejący zasób zostanie zmodyfikowany, 200 (OK) lub 204 (Brak treści) NALEŻY wysłać kody odpowiedzi, aby wskazać pomyślne zakończenie żądania.
Jeśli żądanie przechodzi przez pamięć podręczną, a identyfikator URI żądania identyfikuje co najmniej jedną jednostkę aktualnie buforowaną, te wpisy POWINNY być traktowane jako nieaktualne. Odpowiedzi na tę metodę nie podlegają buforowaniu.
Użyj PUT, jeśli chcesz zmodyfikować pojedynczy zasób, który jest już częścią kolekcji zasobów. PUT zastępuje zasób w całości. Użyj PATCH, jeśli żądanie aktualizuje część zasobu.
ŁATA
Żądania HTTP PATCH mają na celu częściową aktualizację zasobu. Jeśli zobaczysz żądania PUT, zmodyfikuj również jednostkę zasobu, aby było jaśniej - metoda PATCH jest właściwym wyborem do częściowej aktualizacji istniejącego zasobu, a PUT powinna być używana tylko wtedy, gdy zastępujesz zasób w całości.
Więc powinieneś go używać w ten sposób:
POST /device-management/devices : Create a new device
PUT /device-management/devices/{id} : Update the device information identified by "id"
PATCH /device-management/devices/{id} : Partial-update the device information identified by "id"
Praktyki RESTful wskazują, że nie powinno mieć znaczenia, co umieścisz w / {id} - zawartość rekordu powinna zostać zaktualizowana do tej dostarczonej przez ładunek - ale GET / {id} powinien nadal prowadzić do tego samego zasobu.
Innymi słowy, PUT / 3 może aktualizować się do identyfikatora ładunku 4, ale GET / 3 powinien nadal łączyć się z tym samym ładunkiem (i zwracać ten z identyfikatorem ustawionym na 4).
Jeśli zdecydujesz, że twoje API wymaga tego samego identyfikatora w URI i ładunku, Twoim zadaniem jest upewnić się, że pasuje, ale zdecydowanie użyj PATCH zamiast PUT, jeśli wykluczasz identyfikator w ładunku, który powinien tam być w całości . W tym miejscu zaakceptowana odpowiedź jest błędna. PUT musi zastąpić cały zasób, gdzie poprawka-as może być częściowa.