7

私は単純な RESTful API を開発していますが、その最小限度が非常に気に入っています。しかし、さまざまな状況での正しい HTTP 応答コードについてはよくわかりません。

  1. 不適切な形式のクエリ

  2. 正しい形式のクエリは、存在しないリソースを参照しています

  3. リソースが正常に削除されました

  4. リソースが正常に編集されました

私は現在、1が403 Forbidden;になると考えています。2410 Goneです。3 と 4 は202 Accepted. 彼らは正しく聞こえますか?

4

5 に答える 5

15

#1 については、403 は、アプリケーションが要求を理解したが、それを実行しないことを示唆しています (つまり、現在のユーザーは何らかの理由でそれを行う権限を持っていません)。この場合、400の悪いリクエストの方が理にかなっていると思います。

#2については、404の方が理にかなっていると思います。つまり、リソースがある時点で存在し、その後削除されない限り、リソースが見つかりません。その場合、410が公平になりますが、どうすればよいかを知っているクライアントは多くありません410。

#3 と #4 の場合 - 削除が正常に処理された場合は 200、削除がキューに入れられ、後日「帯域外」で処理される場合は 202。

RFC 2616では、各応答コードの意味について、わかりやすい言葉で説明しています。

于 2009-05-11T08:54:12.340 に答える
4
  1. 400
  2. 404
  3. 200
  4. 200
  5. 201 - リソースが正常に作成されました
于 2009-05-11T08:45:40.123 に答える
2

1)。400 - 標準的な不正なリクエスト。403 は、リクエストが正しくフォーマットされているが、アクセスが許可されていないことを意味します

2)。404 - 410 は、リソースが存在していたが意図的に移動されたことを意味します

3)。および 4)。応答を送信するまでにアクションが正常に行われた場合は 200、アクションが保留中の場合は 202。実際には、202 は削除アクション (レビューの対象となる場合があります) の可能性がありますが、ユーザーには実際に削除されたように見えるように、すぐに 200 を返したい場合とそうでない場合があります。それは私見の設計上の質問です。

于 2009-05-11T08:53:13.603 に答える
1

Richardson & Ruby の本を入手してください。あなたの質問に対する便利な付録があり、どちらの方法でも読む必要があります。

于 2009-05-11T09:11:09.457 に答える
-1

標準のhttp 応答コードを使用しないのはなぜですか。すべての最適化 (ex、303、304 の場合)/http 用に設置されたインフラストラクチャを無料で取得できます。

于 2009-05-11T08:50:15.777 に答える