REST 中的操作 API

Action in a REST API

我的应用程序的 Web 服务是一个 Express 服务器,我试图尽可能保持 RESTful。

我有一条 /timesheets 路线。这里的 GET 请求显然会获取时间表列表。此外,POST 自然会创建一个时间表。

但是,我需要向我的 Web 服务发送 说明 到一组时间表上的 "sign off"某个 paycycle(又是另一个资源)。

在我看来,为支付周期中的一组时间表提供签核不是一种资源,而是一种行动。对我来说构建 Web 服务的建议最佳实践方法是什么?

可能的解决方案是发送 POST 请求至:

/paycycle/{paycycleId}/sign-off/

正文:

{
  "time_sheet_id": {timesheetId}
}

,其中 {timesheetId} 是时间的 ID sheet,{paycycleId} 是您要退出的支付周期的 ID。

您可以将 'being signed off' 视为一种状态,而不是将 'signing off' 视为一种行为。 REST 处理状态转移,所以这突然变得容易了。

因此,如果某些资源看起来像这样(使用 JSON,因为每个人都这样做):

{
  "signedOff" : false
}

那么这意味着您可以发送一个 PUT 请求,将其设置为:

{
  "signedOff" : true
}