33

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

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

它是设计 REST API 的正确方法吗?我觉得将 POST 映射到“发送”动作并不直观。

4

1 回答 1

43

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

在您的情况下,它可能如下所示:

(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}部分的“”一样)。

其他资源:

于 2012-09-07T03:59:41.447 回答