RESTAPI 命名问题请教

发布于 2022-09-05 01:37:46 字数 514 浏览 25 评论 0

1.正在写邮件服务,遇到一个问题,常规的命名好做

  • 获取:/emails/{id} get

  • 新建、更新:/email/ post

  • 删除:/emails/{id} delete

2.问题:点击按钮发送邮件这个如何命名?

  • 这样吗?/email/{id}/send 但是restful命名中不应该有动词吧

  • 或者是我理解的不对,restful接口是幂等的,发送邮件这种操作算不幂等吧?是否不适合使用restful风格的命名方式?

3.补充:参考了git的merge操作,直接这样命名的
clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不如归去 2022-09-12 01:37:46

1.在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。
2.HTTP幂等方法,是指无论调用多少次都不会有不同结果的 HTTP 方法。
你可以阅读下 阮一峰 的 RESTful API 设计指南

夏了南城 2022-09-12 01:37:46

发送邮件就是新建一个“发送件”。

理论上你的邮件不可能一个模型就搞定了,至少要分出发送、接收、以及草稿。

离不开的别离 2022-09-12 01:37:46

实际上restful接口并不能解决所有场景, 我觉得 email/{id}/send 或 email/send 按自己方式可以用

URI中不应该出现动词,动词应该使用HTTP方法表示,但是如果无法表示,也可使用动词,例如:search没有对应的HTTP方法,可以在路径中使用search,更加直观;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文