2017-12-22 7 views
1

私はJSONオブジェクトの無限のシーケンスで応答するAPIエンドポイントを持っています。 LikeシエスタはHTTPの長いポーリングをサポートしています

GET /commands?since=112233 {"cmd": "mycommand", "params": [...]} {"cmd": "othercommand", "params": [...]} ... セッションはほぼ終了しません(サーバーは最終的にタイムアウトするように設定されていますが、標準値は数千秒です)。

シエスタでこのようなAPIを使用する方法はありますか?

答えて

1

いいえ、シエスタはこれを直接サポートしていません。シエスタの基本的な前提は、URLは(有限の)状態を持つリソースであり、時間の経過とともにその状態の変化を観察したいということです。したがって、シエスタは実際にそれを構文解析する前に完全に具体化された応答を期待して、&が結果を公開します。あなたが記述しているのは、シエスタのモデルに適合しないHTTPの使い方です。 JSONのシーケンスは、あなたが合理的に連続した状態、それが時間の経過とともに変化し、リソースののシーケンスを表すように解釈される可能性が取得しているオブジェクトの場合

さて、外で、独自のネットワーク呼び出しを行うことも可能であろう次に、Resource.overrideLocalData(…)を使用して、到着時に更新を公開します。

は、あなたが与えたサンプルデータを見ると、しかし、これはよりアクションまたはイベント状態の配列よりのシーケンスのように見えます。シエスタのリソース中心の世界観は、それにはあまり適していないかもしれません。シエスタは、「物Xの現在の状態は何ですか?」という質問がAPIにとって意味深く自然なものであれば、最も効果的です。

+0

ありがとうございます! JSONオブジェクトは実際にはアクションですが、これらのアクションはクライアントにローカルに格納されている状態の更新です。これは、「逆のやり方でやりなさい」のようなものです。したがって、 'overrideLocalData(...)'のアドバイスが動作するかもしれません。 – kikap

関連する問題