RESTful方式触发服务器端事件

时间:2011-12-13 16:00:29

标签: web-services api rest restful-architecture

我的情况是我需要我的API来调用触发服务端事件,客户端不需要信息(除了身份验证),服务器也不需要返回任何信息。由于这不适合标准的CRUD /资源交互,我应该把它作为一个指示我做错了什么,还是有一个RESTful设计模式来处理这些条件?

2 个答案:

答案 0 :(得分:9)

您的客户可以:

POST /trigger

服务器将以202 Accepted回复。

这样,您的请求仍然可以包含相应的身份验证标头,如果您需要客户端提供实体,或者需要返回包含有关如何查询事件状态的信息的响应,则可以在将来扩展API。

关于你在这里尝试做什么,没有什么“非RESTful”; REST原则不必与资源上的CRUD操作相关联。


spec for 202说:

  

通过此回复返回的实体应该包括指示   请求的当前状态和指向状态监视器的指针   或某些用户可以预期请求的估计   满足。

鉴于定义中的“SHOULD”,您没有义务在回复中发送任何内容。

答案 1 :(得分:0)

REST定义了客户端和服务器之间通信的本质。在这种情况下,我认为问题是没有信息要转移。

客户是否需要启动此功能?我说你的服务器端事件应该完全自包含在服务器中。或许可以通过cron电话定期开始吗?