RESTful方式触发服务器端事件

NFi*_*ano 10 api rest web-services restful-architecture

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

Rob*_*ska 10

您的客户可以:

POST /trigger
Run Code Online (Sandbox Code Playgroud)

服务器将以响应的方式响应202 Accepted.

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

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


202规格说:

返回此响应的实体应该包括请求的当前状态的指示,以及指向状态监视器的指针或用户可以期望满足请求的某些估计.

鉴于定义中的"SHOULD",您没有义务在响应中发送任何内容.


Pau*_*nan 0

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

客户有什么理由需要启动此操作吗?我想说你的服务器端事件应该完全独立于服务器内。也许通过 cron 调用定期启动它?

  • 没有要传输的信息并不意味着客户端无法发起呼叫。考虑服务器端虚拟机资源的“重新启动”触发器。像这样的东西。 (2认同)