RESTful HTTP-Antwortcodes

7

Ich entwickle eine einfache RESTful-API und bin total verliebt in das Minimalistische. Aber ich bin unsicher bezüglich der richtigen HTTP-Antwortcodes für verschiedene Situationen:

  1. Falsch gebildete Abfrage

  2. Korrekt gebildete Abfrage bezieht sich auf eine Ressource, die nicht existiert

  3. Ressource wurde erfolgreich gelöscht

  4. Ressource wurde erfolgreich bearbeitet

Ich denke momentan, dass 1 403 Forbidden wäre; 2 wäre 410 Gone ; 3 und 4 wären 202 Accepted . Klingt das richtig?

    
Marcus Downing 11.05.2009, 08:41
quelle

5 Antworten

15

Für # 1 schlägt 403 vor, dass Ihre Anwendung die Anfrage verstanden hat, sie aber nicht erfüllen wird (d. h. der aktuelle Benutzer hat aus irgendeinem Grund keine Berechtigung, dies zu tun). Ich denke, dass 400 schlechte Anfragen in diesem Fall mehr Sinn machen könnten.

Für # 2 - würde ich denken, 404 würde mehr Sinn ergeben, d. h. Ressourcen werden nicht gefunden, es sei denn, die Ressource existierte irgendwann, und wurde dann gelöscht, in welchem ​​Fall 410 wäre fair - aber nicht viele Kunden wissen, was mit 410 zu tun ist.

Für # 3 & amp; # 4 - 200, wenn Sie die Löschung erfolgreich durchgeführt haben, 202 wenn die Löschung in die Warteschlange gestellt wurde und zu einem späteren Zeitpunkt "Out-of-Band" behandelt wird.

RFC 2616 liefert großartige Erklärungen dazu, was jeder Antwortcode in ziemlich verständlichen Begriffen bedeutet.

    
Bittercoder 11.05.2009, 08:54
quelle
4
  1. 400
  2. 404
  3. 200
  4. 200
  5. 201 - Ressource erfolgreich erstellt
1800 INFORMATION 11.05.2009 08:45
quelle
2

1). 400 - Standardfehleranforderung, 403 bedeutet, dass die Anfrage korrekt formatiert ist, Sie aber nicht darauf zugreifen dürfen

2). 404 - Ein 410 bedeutet, dass die Ressource existiert hat, aber absichtlich verschoben wurde

3). und 4). 200, wenn die Aktion bis zum Senden der Antwort erfolgreich ausgeführt wurde, 202, wenn die Aktion ansteht. In der Praxis ist 202 wahrscheinlich für Löschaktionen (wo sie überprüft werden können), aber Sie möchten vielleicht nicht sofort eine 200 zurückgeben, so dass sie tatsächlich für den Benutzer gelöscht erscheint. Das ist eine Designfrage imho.

    
annakata 11.05.2009 08:53
quelle
1

Holen Sie sich die Richardson & amp; Ruby-Buch - es hat einen nützlichen Anhang zu Ihrer Frage und muss auf jeden Fall gelesen werden

    
Ruben Bartelink 11.05.2009 09:11
quelle
-1

Warum nicht den Standard Ссылка verwenden? Sie erhalten alle Optimierungen (z. B. 303, 304) / Infrastruktur für http kostenlos.

    
Surya 11.05.2009 08:50
quelle

Tags und Links