Frage

Ich entwickle eine einfache RESTful API, und ganz in der Liebe mit, wie minimalistisch ist. Aber ich bin unsicher, die richtigen HTTP-Response-Codes für verschiedene Situationen:

  1. falsch gebildet Abfrage

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

  3. Resource erfolgreich gelöscht

  4. Resource erfolgreich bearbeitet

ich zur Zeit zu denken, dass 1 würde 403 Forbidden werden; 2 würde 410 Gone; 3 und 4 würden 202 Accepted. Haben sie klingen nicht wahr?

War es hilfreich?

Lösung

1 #, 403 schlägt vor, die Anwendung die Anforderung verstanden, aber wird nicht erfüllen sie (das heißt aktuelle Benutzer ist nicht berechtigt, dass aus irgendeinem Grund zu tun). Ich denke, 400 schlecht Anfrage könnte mehr Sinn in diesem Fall machen.

# 2 - Ich würde denken, 404 mehr Sinn heißt Ressource machen würde nicht gefunden wird, es sei denn, die Ressource hat zu einem bestimmten Zeitpunkt existierte und wird dann gelöscht wurde, wobei in diesem Fall 410 wäre fair -. aber nicht viele Kunden wissen, was mit 410 zu tun

# 3 & # 4 -. 200, wenn Sie die Löschung erfolgreich verarbeitet, 202, wenn die Löschung Warteschlange gestellt wird, und wird zu einem späteren Zeitpunkt „out-of-Band“ behandelt wird

RFC 2616 bietet große Erklärungen, was jeder Antwortcode bedeutet in ziemlich verständlich.

Andere Tipps

  1. 400
  2. 404
  3. 200
  4. 200
  5. 201 - Ressource erfolgreich erstellt

1). 400 - Standard schlecht Anfrage, Einrichtung 403 die Anforderung richtig formatiert ist, aber sie sind nicht für den Zugriff auf es erlaubt

2). 404 - ein 410 impliziert, dass die Ressource noch nicht gab, aber absichtlich verschoben wurde

3). und 4). 200, wenn die Aktion erfolgreich, bis Sie die Antwort senden passiert ist, 202, wenn die Aktion ansteht. In der Praxis ist 202 wahrscheinlich für Löschaktionen (wo sie möglicherweise ausgesetzt sein überprüfen), aber sie sofort möchten oder nicht ein 200 sowieso zurückkehren, so dass es den Benutzer tatsächlich gelöscht erscheint. Das ist eine Gestaltungsfrage imho.

Holen Sie sich das Richardson & Ruby-Buch - es hat einen nützlichen Anhang auf Ihre Frage und erforderlich ist, liest oder so

Warum verwenden Sie den Standard HTTP-Response-Codes . Sie würden alle Optimierungen erhalten (zB, 303, 304) / Infrastruktur kostenlos an Ort und Stelle für http setzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top