注文がある商品があるとします。/products/product_idを要求すると、product_idが存在しない場合は404が返されます。しかし、/ products/product_id/ordersは、この製品の注文がない場合、または空の配列を返す必要がある場合は404を返しますか?RESTful APIはオブジェクトの配列に対して404を返しますか?
答えて
私は空のコレクションを返します。ゼロオーダーの商品は完全に有効な概念なので、空のオーダーコレクションの存在は、この商品にオーダーコレクションがないことを推測する404よりも理にかなっています。
あなたは本当に一つだけ二つの
を行うのどちらか200 (OK)
ステータスコード、および体内の空の配列を返す必要があります。
または204 (NO CONTENT)
ステータスコードとNO応答本文を返します。
私にとっては、オプション2は、技術的には正しく、RESTとHTTPの原則に沿っているようです。
しかし、クライアントは2つの(成功した)ステータスコードを区別するために余分なロジックを必要としないため、オプション1はクライアントにとってより効率的です。
私たちは、HTTPステータス値を話している:それは常に配列を受けることを知っているので、それは単に、それはどれも、1、または多くのアイテムを持っていないかどうかを確認し、適切な私の意見では
それを処理しなければなりませんここでは、より高いレベルの回答を与えるべきである。
デリゲートの層でこれを確認する必要があります。あなたのAPIがリクエストに答えることができない場合、API呼び出し自体が利用できない場合、404で返信することができます。
しかし、あなたの呼び出しが存在し、空のコレクションであれば、空の結果でhttp 200だけを返すことができます。
私は、リクエストの検証に関する指示を与えるためにhttpステータス値を使用し、より深いapiレイヤのコンテンツに直接依存しないようにします。
は、配列を返すしないでください...
または1つは、厳密にはネット上で見つけたプロトコルに従うことができ、誰も彼らを続きません。 200
また、この:それはあなたがHTTPステータスコードと通常
(ページネーションまたは他のなめらか用)メタデータを追加することができます
{
offset: 30,
limit: 10,
arr: []
}
のように、どのような場合にオブジェクトを返します。 セキュリティ懸念している従来のWeb APIの動作です: https://www.owasp.org/index.php/OWASP_AJAX_Security_Guidelines#Always_return_JSON_with_an_Object_on_the_outside
- 1. APIは1つの結果に対してJSONの配列を返します
- 2. オブジェクトの配列に対してJqueryを繰り返す
- 3. C++の配列は、すべてのオブジェクトに対して同じ、char *を返す
- 4. googleapisはgoogle.cloudfunctions( 'v1beta2')に対して404を返します。operations.get()
- 5. Angular.isArray(data)は配列に対してfalseを返します
- 6. 配列は同じバイト配列に対してfalseを返します
- 7. 成功へのRESTful API 404それは正しいですか?
- 8. Java RESTful API - JSON repsonseはオブジェクトのいくつかのフィールドを返しません
- 9. 返り値Jersey RESTFul API(JAX-RS)の2つのJSONオブジェクトの配列
- 10. オブジェクトの配列が空の配列を返しますか?
- 11. Fileserverはすべてのファイルに対して404を返します
- 12. ランダムなオブジェクトを配列から削除して返します
- 13. 配列内の対象オブジェクトJSON Steam API
- 14. Rubyのオブジェクトの配列からオブジェクト属性を返します
- 15. オブジェクト配列をソリッドで返します
- 16. データベースはオブジェクトまたは配列としてレコードを返しますか?
- 17. Spring MVCコントローラはPOST要求に対して常に404を返します
- 18. jQuery:オブジェクトの配列に対して操作を実行しますか?
- 19. JavaScriptのindexOf()は、配列内の認識されたオブジェクトに対して-1を返します
- 20. django-allauth - RESTful APIは、ユーザに属するすべてのメールアドレスを返します
- 21. 'が空ですか?'空の配列の空の配列に対して 'false'を返します
- 22. MongoDBは "m"オブジェクトの配列を返しますか?
- 23. NHibernate Joinsオブジェクトの配列を返します。どうして?
- 24. オブジェクト内のオブジェクトに対してASP.NETとEFコアWeb APIがnullを返す
- 25. YouTube V3 API(googleapis.com)は404を返しますか?
- 26. Django RESTful APIのRetrofit @POSTで404を解決するには?
- 27. Hibernate〜RESTfulはオブジェクトのセットを返します
- 28. フィルターes6はオブジェクトの代わりに配列を返します
- 29. PHPは配列の中にオブジェクト変数を返します
- 30. PHP json_encodeは配列の代わりにオブジェクトとして行を返します
yoあなた自身の結果を定義することができます。それぞれの結果に異なるIDを付けてください – Grumpy
+1:私たちは今、ビデオのコレクションを集めて同じ質問を議論しています。 –
@Grumpyあなたはもう少し何を意味するか説明できますか? – rbp