将 Siesta 与非 restful API 结合使用



我知道这可能是一个很长的机会,但是是否有可能将Siesta与完全非RESTful API一起使用?我必须使用的 API(并且不在我的控制范围内,所以可悲的是无法更改(要求每个请求都是 POST 请求,无论它是否纯粹是检索数据。

我已经阅读了这里的问题/答案,这给了我一线希望,但是这个问题和我的问题之间的最大区别在于每个请求的端点。对于我正在使用的 API,它们都是相同的:(

每个请求都必须 POST 到/api/api_post.php,其他所有内容都指定为请求中提供的参数。

显然,我可以滚动自己的请求包装器来处理这个问题,但我希望能够使用Siesta提供的一些功能,而不必担心处理网络的所有烦恼。有什么办法可以做到这一点,还是我运气不好?

你可以让你的应用使用一个虚构的 REST API,然后将其转换为 Siesta 眼皮底下的非 restful 请求。(例如,GET /foo/3可能会转换为带有item=foo&id=3POST /api/api_post.php。这有点麻烦,但它确实可以让您享受 Siesta 的好处,即使对于非 REST API。

有两种方法可以实现这一点:

  1. 使用mutateRequests(…)重写请求。这使您可以在发送URLRequest之前任意更改。
  2. 写你自己的NetworkingProvider.这有点麻烦,但可以更全面地控制重写。例如,如果您还需要重写响应,或者必须将一个虚拟请求转换为多个真实请求,则此方法可能更合适。

更多内容请在此处讨论。

相关内容

  • 没有找到相关文章

最新更新