RESTAPI 命名问题请教
1.正在写邮件服务,遇到一个问题,常规的命名好做
获取:/emails/{id} get
新建、更新:/email/ post
删除:/emails/{id} delete
2.问题:点击按钮发送邮件这个如何命名?
这样吗?/email/{id}/send 但是restful命名中不应该有动词吧
或者是我理解的不对,restful接口是幂等的,发送邮件这种操作算不幂等吧?是否不适合使用restful风格的命名方式?
3.补充:参考了git的merge操作,直接这样命名的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
1.在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。
2.HTTP幂等方法,是指无论调用多少次都不会有不同结果的 HTTP 方法。
你可以阅读下 阮一峰 的 RESTful API 设计指南
发送邮件就是新建一个“发送件”。
理论上你的邮件不可能一个模型就搞定了,至少要分出发送、接收、以及草稿。
实际上restful接口并不能解决所有场景, 我觉得 email/{id}/send 或 email/send 按自己方式可以用
URI中不应该出现动词,动词应该使用HTTP方法表示,但是如果无法表示,也可使用动词,例如:search没有对应的HTTP方法,可以在路径中使用search,更加直观;