RESTful / 基于 Crud 的方法来控制通常隐式的实体行为
RESTful / Crud based approach to controlling an entity behavior that is typically implicit
我正在修改 CakePHP 应用程序以使其具有可用的 API。我的意图是尽量使端点尽可能接近 RESTful / Crud 导向。虽然我有一个我不确定的用例。
我有以下添加和编辑任务的请求:
PUT /tasks
PATCH /tasks/:id
我正在处理的系统中任务实体的行为之一是,当执行保存或编辑时,它们会向与任务关联的受影响用户发送电子邮件。这允许围绕任务的各方更新特定任务的状态。
然而,唯一的问题是,在某些不常见的情况下,如果最终用户希望在前端发送电子邮件,他们将需要能够进行切换。
什么是正确的 RESTful / 面向 Crud 的方法来标记任务端点以不在 API 请求中触发电子邮件?
应用程序的数据库中没有电子邮件的记录,将功能绑定到任务生命周期挂钩并隐式调用是很好的。所以我并不热衷于创建一个 /emailTask 端点集。似乎任务请求中的可选标志会更清晰,但如果我们开始对与任务相关的其他行为有类似的需求,则可能无法维护。
在此先感谢您的帮助!
PUT /tasks
如果您打算使用它来添加任务,请改用 POST
。 PUT /tasks
表示您正在覆盖所有任务。
至于 side-effects,这对我来说感觉像是自定义 HTTP header 的体面 use-case。也许像 Suppress-Notifications: ?1
?
为什么 ?1
作为一个值?这将成为指定布尔值的新 HTTP headers 的未来默认值:
https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-15#section-4.1.9
我正在修改 CakePHP 应用程序以使其具有可用的 API。我的意图是尽量使端点尽可能接近 RESTful / Crud 导向。虽然我有一个我不确定的用例。
我有以下添加和编辑任务的请求:
PUT /tasks
PATCH /tasks/:id
我正在处理的系统中任务实体的行为之一是,当执行保存或编辑时,它们会向与任务关联的受影响用户发送电子邮件。这允许围绕任务的各方更新特定任务的状态。
然而,唯一的问题是,在某些不常见的情况下,如果最终用户希望在前端发送电子邮件,他们将需要能够进行切换。
什么是正确的 RESTful / 面向 Crud 的方法来标记任务端点以不在 API 请求中触发电子邮件?
应用程序的数据库中没有电子邮件的记录,将功能绑定到任务生命周期挂钩并隐式调用是很好的。所以我并不热衷于创建一个 /emailTask 端点集。似乎任务请求中的可选标志会更清晰,但如果我们开始对与任务相关的其他行为有类似的需求,则可能无法维护。
在此先感谢您的帮助!
PUT /tasks
如果您打算使用它来添加任务,请改用 POST
。 PUT /tasks
表示您正在覆盖所有任务。
至于 side-effects,这对我来说感觉像是自定义 HTTP header 的体面 use-case。也许像 Suppress-Notifications: ?1
?
为什么 ?1
作为一个值?这将成为指定布尔值的新 HTTP headers 的未来默认值:
https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-15#section-4.1.9