2011-12-13 105 views
9

我有一个情况我需要我的API有触发服务端事件,没有信息(除了认证)的调用REST风格的方式,并没有什么需要返回由服务器。由于这不符合标准的CRUD /资源交互,我应该将此作为指示我做错了什么,或者是否存在用于处理这些情况的RESTful设计模式?触发服务器端事件

回答

0

REST定义了客户机和服务器之间的通信的性质。在这种情况下,我认为问题在于没有要传输的信息。

是否有任何理由,客户端需要启动这个呢?我想说你的服务器端事件应该完全独立于服务器中。也许用cron调用定期启动它?

+2

没有信息传递并不意味着客户端不能发起呼叫。考虑一下服务器端虚拟机资源的“重启”触发器。像这样的东西。 – RayLuo

9

您的客户端可以只:

POST /trigger 

到的服务器将与202 Accepted回应。

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

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


spec for 202说:

实体与该响应中返回应包括 请求的当前状态的指示和任一个指针指向一个状态监视器 或当用户可以一些估计预计的要求是 履行。

鉴于定义中的“SHOULD”,您没有义务发送任何响应。

相关问题