2016-09-21 11 views
1

私はいくつかの異なるソースからのデータを集約し、いくつかのフォーマットを行い、それをJSONペイロードに戻すREST APIを持っています。REST APIで不完全な結果を返す正しい方法ですか?

/API /何とか/リソース

[ 
    { 
     "name": "resource1", 
     "value": 19, 
     "foo": "bar" 
    }, 
    { 
     "name": "resource2", 
     "value": 68, 
     "foo": "baz" 
    }, 
    { 
     "name": "resource3", 
     "value": 88, 
     "foo": "blee" 
    } 
    //etc... 
] 

しかし、私は集計していますソースのいくつかは、信頼性が低く、かつそれらへの要求がタイムアウトになることができ、失敗、または断続的に応答がありません。

[ 
    { 
     "name": "resource1", 
     "value": 19, 
     "foo": "bar" 
    }, 
    //resource2 is missing :c 
    { 
     "name": "resource3", 
     "value": 88, 
     "foo": "blee" 
    } 
    //etc... 
] 

この集合の一部に障害が発生したとき、彼らは要求されたデータが不完全であるというのが私のREST APIの消費者に知らせるための最良/ RESTfulな/正しい方法は何ですか?

+0

私は分かりません。興味深い質問。リソースにステータスプロパティを追加する必要があります。そのため、欠落しているリモートリソースに 'status:"タイムアウト "などを設定することができます。 – inf3rno

+0

私はそうしたいと思いますが、これらのエラーケースでは特定のリソースが欠落しているとは必ずしも言えません。したがって、これらのケースではプレースホルダを想定できません。 – 72A12F4E

+0

私は少なくともあなたがタイムアウトが発生したリソースを知っていると思っていました。クライアントの視点から、リソースの一部が利用できないことは重要ですか? – inf3rno

答えて

-1

特別なHTTPステータスコードを使用する必要があります。あなたは完璧なものを見つけることができますhere

+0

206部分コンテンツは潜在的なものと思われましたが、クライアントが送信した一部のインデックスからファイルの一部をダウンロードする特定の使用例を想定しています。実際に範囲を要求していないか、ファイルの一部をダウンロードしているわけではないので、私のユースケースでは正しくはありません。不完全なコンテンツを取得しています。 – 72A12F4E

+0

@ 72A12F4E Yepp、afaikは範囲リクエストを処理しています。問題。 – inf3rno

関連する問題