は、私が 体内でRESTfulなAPI POST/DELETEが返される必要はありますか?
- POST /人/ボブ/に従う必要があり従うとRESTful APIを介して人をアンフォローするには
何べきでこれらのリターン体?
- あなたは
- に従っみんなのコレクションあなただけ続く人は/
- { "OK" 状態}のような状況をフォローを解除しました。
は、私が 体内でRESTfulなAPI POST/DELETEが返される必要はありますか?
何べきでこれらのリターン体?
すべては、お客様のアプリケーション/ APIの設計と、クライアント/発信者で定義する契約によって異なります。しかし、一般的に、すべてのケースでステータスコードを返して、クライアントに結果を知らせる必要があります。
同様:POST
についてはrespond(ResponseCode::OK, ...)
:私はDELETE
のために彼の信者のすべて+ステータスコード
を含む「ボブ」オブジェクトを返したい:私は、ステータスコードを返すと思います。
HTTPサーバーステータスを使用してエラーが発生した場合、ステータスコードには何も表示されません。ユーザーBobがいない場合は404 Not Found、データベースが壊れている場合は500 Internal Server Errorと応答すると、これまでに成功した応答はOKになります。ユーザーはステータスコードを確認する必要はなく、HTTPステータスコードを確認するだけで済みます。
何も返されないことをお勧めします。正常な応答(つまり、200 OKまたは204 No Content)は、操作が成功したことを示します。
一般的に、APIについては、コードステータスが常に「OK」ではなく「HTTP」ステータスコードを使用することを謝罪しています。 これは、回答の既存の基準に従うことができることを意味します。エラーコードを取得した人は、何が起こったか/彼らがしなければならないことを大まかに知ります。 wikiの記事http status codesを参考にしてください。
また、エラーコードとともに、私たちが話しているAPIであるため、エラーについてよりわかりやすいメッセージを表示すると便利です。エラーのような意味があります。「認証トークンがありません」など、何らかの基準があります。
リソースの作成に関しては、201(Created)と作成したばかりのリソースで回答するのが一般的です。リソースからいくつかの属性を除外することができます(例えば、ユーザーを作成しているときに、暗号化されたパスワードなどの機密情報を返さないでください)。
リソースの削除に関しては、 200(OK)または202(Accepted)、追加情報なし。
それでも、@ yekは、APIコンシューマーへのコミットメントに大きく依存しています。最も重要なことは、APIを適切に文書化し、何が期待どおりであるべきかを説明することです。
ボブの次はすべて何千ものものになることがあります。それは理想的ではありません。 –
あなたはそうだから、私はそれがアプリのデザインに依存していると言いました。しかし、mvcフレームワーク(rails、asp.net mvc ...)を使用していると仮定します。PersonControllerアクションを呼び出すと、クライアントは同じタイプ(Person)のオブジェクトを受け取ることを期待しています。タイプ。 – yek