如何为电子邮件发送服务设计REST API?

时间:2012-09-07 01:04:30

标签: rest

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

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

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

1 个答案:

答案 0 :(得分:26)

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

在您的情况下,它看起来像这样:

(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

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

其他资源: