前后端 api 接口 url 格式问题讨论

2023-09-08 11:48:39 +08:00
 pandazhong123

公司的前后端 api 接口统一用 post,对于添加删除用户,是用 /user/add /user/delete 比较好,还是用 /add/user /delete/user 比较好?

4534 次点击
所在节点    程序员
82 条回复
corcre
2023-09-08 14:47:12 +08:00
要是在我们公司按照第二种命名风格那多大的项目都只有增删改查这 4 个 controller🤣
lidashuang
2023-09-08 14:50:49 +08:00
@worldqiuzhi 正解
leonshaw
2023-09-08 15:02:02 +08:00
@hidemyself #30 DELETE users?phone=xxx
应该问其它操作应该怎么办(比如通过验证码激活用户)。
key0323
2023-09-08 15:35:44 +08:00
楼主都说了公司要求 post 一群不审题的迫不及待的把自己 rest 知识秀出来🤣
george2077
2023-09-08 15:47:59 +08:00
用 /user/add 和 /user/delete 这种格式,更符合 RESTful API 的设计原则,资源的层级结构,可读性和扩展性,都要更好
frank42a
2023-09-08 15:50:10 +08:00
全套 POST 本身就反智
duanzhangplus
2023-09-08 15:55:50 +08:00
等你后续需求是匹配 URL 做 trace 、鉴权 的时候你就发现 /user/* 是非常好的方式
zx9481
2023-09-08 16:02:38 +08:00
为什么那么多公司做前后端分离项目后端响应的 HTTP 状态一律 200 ? - 知乎
https://www.zhihu.com/question/513865370/answer/2331933561
zx9481
2023-09-08 16:02:56 +08:00
@zx9481 post+json 团队都下班回家抱老婆了,restful 原教旨主义团队还在加班查错,还拉着运维陪他们。
xausky
2023-09-08 16:03:41 +08:00
区分度都放到后面,否则倒是上线看浏览器的 Network 全是 /user 200 xhr
lambdaq
2023-09-08 16:06:09 +08:00
@nothingistrue 那么问题来了,批量删除怎么搞?
sanqian
2023-09-08 16:07:28 +08:00
你要简单点的话 还是
/user/add
/user/delete
你得考虑路由啊
liberty1900
2023-09-08 16:15:09 +08:00
用 REST 居然不用 HTTP method 我很难理解

又不是 GraphQL
sankooc
2023-09-08 16:20:59 +08:00
这个肯定是前者好吧
tramm
2023-09-08 16:37:32 +08:00
肯定前者吧...
除非你把不同功能的 add 全写在一个 controller 中
liuidetmks
2023-09-08 16:42:13 +08:00
又到了月经周期了吗
XueXianqi
2023-09-08 16:42:18 +08:00
我的建议:
遵循 RESTful 规范,根据 URL+Method 进行组合


POST /user 新增用户
DELETE /user/{user_id} 删除用户
UPDATE /user/{user_id} 更新用户(全局字段)
PATCH /user/{user_id} 更新用户(局部字段)
GET /user/{user_id} 用户详情
GET /user 用户列表
cnjs
2023-09-08 16:49:43 +08:00
@xiangyuecn #13 Path 去掉,勾选上 Name 即可,一目了然
edotac
2023-09-08 16:49:52 +08:00
post+json 团队都下班回家抱老婆了,restful 原教旨主义团队还在加班查错,还拉着运维陪他们。
gogolive
2023-09-08 16:50:38 +08:00
目录由大到小比较合适
user 是大目录,后面不只有 add ,还有其他的 like 等

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/971993

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX