2

我第一次尝试开发rest api。并寻找对资源使用更改流的环回引用,例如/resources/change-stream使用 GET 和 POST 方法。

我访问过这篇文章,它指出了 rest api 和流 api 之间的区别。

我认为,虽然环回在 rest api 中提供它。它是什么以及它的作用。您能否以您对我清楚的方式向我解释(对于一个六岁的孩子)。因为,我是第一次自己开发 REST API。因此,如果可能的话,我想逐步了解邮递员中应该有什么。我应该将 url'/api/resources/change-stream?_format=event-streamapplication/jsoncontent-type 一起使用还是就/api/resources/change-stream可以了。

如果您能给我提供一些真实的示例以便我可以在自己的应用程序中尝试开发它,那将是一个很好的示例。

PS:无论您选择哪种语言(Node.js、Python、Ruby、PHP),我都可以通过一些示例来提供答案。

4

1 回答 1

3

如果我不得不猜测,这听起来像是一个单向长轮询,您可以在其中长时间运行,打开对服务器的请求,该服务器将在事件发生时满足该请求。如果请求超时,请不要担心,发送另一个并保持打开状态。当一个事件满足请求时,立即触发另一个请求,以便您可以接收下一个事件。

由于 API 另一端的文档仍然(可能)是 JSON 文档,因此您应该保留该 mime。但是,您可以作为事件类型发回的内容不受限制。如果您想发回 XML 或 YAML,请执行此操作并设置该 mime。“流”只是一种约定机制。

就您的应用程序而言,从 REST 的角度来看,您尝试提供给您的事件只需要一段时间,而且失败的可能性很高。但我不会从 REST 的角度来看这个,REST 只是约定,不要让它束缚你。

或者,长轮询可能应该被WebSocket之类的东西取代,因为它提供了一个更简单的 API(在我看来)并且看起来不像长轮询那样 hacky。

如果你想问,“我如何告诉 RESTful 消费者我的 API 是一个‘流’API”,那就没有意义了。同样,就 REST 而言,https://example.com/api/events/端点指的是一个 JSON 类型的文档,该文档会发生很多变化,需要很长时间才能接收,并且经常“失败”(如果您生成的事件不会触发很多)。

于 2019-05-09T19:00:16.847 回答