1

我有一个 API 端点,它以无穷无尽的 JSON 对象序列进行响应。喜欢

GET /commands?since=112233 {"cmd": "mycommand", "params": [...]} {"cmd": "othercommand", "params": [...]} ... 会话几乎永远不会结束(服务器有一个设置最终会超时,但典型值是几十万秒)。

有没有办法在 Siesta 中使用这样的 API?

4

1 回答 1

1

不,Siesta 不直接支持这一点。Siesta 的一个基本假设是 URL 是具有(有限)状态的资源,并且您希望观察该状态随时间的变化。因此,Siesta 期望在实际开始解析它并发布结果之前得到完全具体化的响应。您所描述的是 HTTP 的不同用途,它不适合 Siesta 的模型。

现在,如果您获得的 JSON 对象序列可以合理地解释为表示资源随时间变化的连续状态序列,那么就可以在 Siesta 之外进行自己的网络调用,然后用于Resource.overrideLocalData(…)发布他们到达时的更新。

但是,查看您提供的示例数据,这看起来更像是一系列动作事件,而不是一系列状态。Siesta 以资源为中心的世界观可能不适合这种情况。如果问“事物 X 的当前状态是什么?”,午睡会给你带来最大的好处。对您的 API 来说是有意义且自然的。

于 2017-12-22T15:45:16.160 回答