如何设计用于电子邮件发送服务的REST API



如何使用POST、GET、PUT、DELETE设计用于电子邮件发送服务的REST API?

send: POST - /email
retrieve: GET - /email/{id}
delete: DELETE - /email/{id}

这是设计REST API的正确方法吗?我觉得将POST映射到"发送"操作是不直观的。

您给出的方案是正确的。或者,您可以使用控制器来执行一些更复杂的操作。

在你的情况下,它可能看起来像这样:

(action)           (verb)   (URI)                             (type)
create:            POST   - /emails                         - collection
retrieve:          GET    - /email/{id}                     - resource
update:            PUT    - /email/{id}                     - resource
delete:            DELETE - /email/{id}                     - resource
send immediately:  POST   - /email/{id}/sendImmediately     - controller
just send:         POST   - /email/{id}/send                - controller
do something else: POST   - /email/{id}/someOtherActionType - controller

注意新的控制器和更改创建工作。后者相当主观,但合理(因为你无法真正访问"没有实际电子邮件"的URL,就像我在解释"/email"时没有"{id}"部分一样)。

附加资源:

  • REST API设计手册

最新更新