如何使用POST、GET、PUT、DELETE设计发送电子邮件服务的REST API?
send: POST - /email
retrieve: GET - /email/{id}
delete: DELETE - /email/{id}
设计REST API的方式是否正确?我觉得将POST映射到“发送”操作并不直观。
如何使用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,就像我会解释带有“{id}”部分的“/email
”一样)。
其他资源: