如何使用POST,GET,PUT,DELETE为电子邮件发送服务设计REST API?
send: POST - /email
retrieve: GET - /email/{id}
delete: DELETE - /email/{id}
这是设计REST API的正确方法吗?我觉得将POST映射到动作“发送”是不直观的。
答案 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}
”一样。
其他资源: