2016-07-11 6 views
1

部分的な障害だけがある場合にJSON RPC応答を返す標準的な方法は何ですか? both 'result' and 'error' cannot both be setと表示されます。JSON RPC 2.0:部分エラーと部分結果の応答

同じAPIを実行している複数のサイトにまたがってサーバーが結果を集計している場合があります。集計の理由は、Same-Origin Policyが原因です。各サイトは、結果またはエラーのいずれかで応答する可能性があります。ある人が結果で応答し、他の人がエラーで応答した場合、集約サーバは元の発信者への完全な応答として何を返しますか?

a =(method)=> b 
       b =(method)=> c 
       b =(method)=> d 
       b <=(error)== c 
       b <=(result)= d 
a <=(??????)= b 

それは単に2つの応答(何らかのエラーで1なし「ID」と結果を1とこれが最後の応答である示唆「ID」)を返すために最善のですか?

答えて

0

サーバーの責任は、エラーが含まれている可能性のある結果を集約して返すことです。これはあなたのクライアントが期待しているものです。

--> {"jsonrpc": "2.0", "method": "getResults", "id": 1} 

<-- {"jsonrpc": "2.0", "result": [ "success", "error" ], "id": 1} 

予期しない理由により、サーバー自体が要求を処理できなかった場合は、エラーを返す必要があります。

+0

これは元の質問に答えるように見えますが、私はそれに関係なく望むことが残っていると言わなければなりません。サーバー "C"がサーバー "D"よりも大幅に速く応答する場合はどうなりますか?クライアント "A"は完全な結果のために追加の時間を待たなければなりませんか? –

+0

@GregSmethellsはい。 JSON-RPCには1つのリクエストに対する1つの応答があります。 [進捗状況通知](https://groups.google.com/forum/#!topic/json-rpc/8Ea6qu_u_tU)に関する議論がありますが、まだ利用できません。 – Rodris

関連する問題