2013-07-26 9 views
26

Mam zasoby z uri /api/books/122, jeśli ten zasób nie istnieje w punkcie, w którym klient wysyła HTTP Delete dla tego zasobu, jaki jest odpowiedni kod odpowiedzi z tego działania? Czy nie znaleziono 404?
DziękiCo to jest kod odpowiedzi HTTP dla operacji zakończonej niepowodzeniem operacji HTTP Delete?

+0

Może wybierz odpowiedni z tego? http://www.w3.org/Protocols/HTTP/HTRESP.html –

+6

Znalazłem ten schemat do oświecenia: http://i.stack.imgur.com/whhD1.png – huwr

+0

@huwr Czy istnieje źródło do edycji do tego gdzieś? Również - Czy nie mam racji, sądząc, że w centrum dolnym jest błąd? = Tak -> = Tak -> 204 Brak treści (??) Wygląda na to, że ścieżki Tak/Nie są zamienione? – unomi

Odpowiedz

21

Tak, byłoby 404.

Na ogół będzie to błąd seria 400, jeżeli wniosek jest źle jakoś, a błąd 500 series, jeśli coś pójdzie krzywo na serwerze.

28

Kod odpowiedzi na kasowania połączenia może być jedną z następujących czynności:

  • DELETE /api/book/122 - Serwer pomyślnie przetworzył żądanie, ale nie zwraca żadnej treści
    • 204 No Content
  • DELETE /api/book/122 - Zasób nie istnieje
    • 404 Not Found
  • DELETE /api/book/122 - zasób już usunięte
    • 410 Gone
  • DELETE /api/book/122 - Użytkownicy nie ma uprawnień
    • 403 Forbidden

W twoim przypadku 404 jest trafne.

+0

Czy możesz udostępnić odniesienia do tego? – maikel

+0

O identyfikatorze URI dla 'Delete' lub' Update' i przy założeniu scenariusza, w którym zasób już nie istnieje, myślę, że powinien on być '410' (* Gone *). Rozważmy jednak scenariusz, jeśli zasób nigdy nie istniał od początku ani poprzednio, nie ma więcej sensu niż "404". –

Powiązane problemy