我有一种情况,我需要我的 API 调用以触发服务端事件,客户端不需要任何信息(除了身份验证),服务器也不需要返回任何信息。由于这不适合标准的 CRUD/资源交互,我应该将其视为我做错了什么的指标,还是有 RESTful 设计模式来处理这些情况?
问问题
3507 次
2 回答
12
您的客户可以:
POST /trigger
服务器将使用202 Accepted
.
这样,您的请求仍然可以包含适当的身份验证标头,并且如果您需要客户端提供实体,或者需要返回包含有关如何查询事件状态的信息的响应,API 可以在将来进行扩展。
您在这里尝试做的事情没有任何“非 RESTful”;REST 原则不必与资源上的 CRUD 操作相关联。
202的规范说:
与此响应一起返回的实体应该包括请求当前状态的指示以及指向状态监视器的指针或用户可以期望何时完成请求的一些估计。
鉴于定义中的“应该”,您没有义务在响应中发送任何内容。
于 2011-12-13T16:54:08.160 回答
0
REST 定义了客户端和服务器之间通信的性质。在这种情况下,我认为问题在于没有信息可以传输。
客户是否有任何理由需要启动此操作?我想说您的服务器端事件应该完全独立于服务器中。也许通过 cron 调用定期启动它?
于 2011-12-13T16:08:50.947 回答