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

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

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

4534 次点击
所在节点    程序员
82 条回复
bojackhorseman
2023-09-08 11:50:29 +08:00
我倾向于前者,虽然我是前端,不关心后端怎么设计接口。
hervey0424
2023-09-08 11:50:57 +08:00
我觉得/user/add 比较好, 或者 user_add
pandazhong123
2023-09-08 11:52:16 +08:00
/add/user 这种阅读起来不是更自然吗?
@bojackhorseman
233373
2023-09-08 11:53:00 +08:00
参考下 JSON-RPC 的格式吧,把行为放在 URL 里面确实不太好
shakukansp
2023-09-08 11:54:30 +08:00
@pandazhong123 /add/user 会被人觉得你所有乱七八糟的 add 都往这下面塞
/user/add 说明就是 user 的增删改查
IvanLi127
2023-09-08 11:57:12 +08:00
前者。
或者你想要 add user 的顺序,路径可以叫 /add-user
libook
2023-09-08 12:00:23 +08:00
都可以,估计要把所有接口都列出来,然后才能知道用哪种方式组织开发起来更方便。

现在很多是倾向于微服务和 REST 风格设计,所以以资源为主体,其次是围绕资源的各种操作,所以倾向于前者。

但不同项目的情况可能有很大差异的,没有一种适用所有情况的方案。
lopda
2023-09-08 12:03:23 +08:00
主区分模块(谁
谓区分行为(做什么

所以我也倾向于 user/add 这种
lopda
2023-09-08 12:04:33 +08:00
@lopda 对于前端来说,api 请求分模块文件的时候也更清晰点。
pandazhong123
2023-09-08 12:09:20 +08:00
OK ,看来大家都是主张用/user/add 这种格式,我们也采用这种格式了,谢谢大家。
xiangyuecn
2023-09-08 12:10:44 +08:00
/user/addUser
/user/deleteUser
pandazhong123
2023-09-08 12:11:41 +08:00
@xiangyuecn 这种格式看起来有点冗余了。
xiangyuecn
2023-09-08 12:15:15 +08:00
@pandazhong123 等你调试的时候看浏览器控制台 Network 面板,就会知道这种越完整的越有多香了😅
nothingistrue
2023-09-08 12:22:47 +08:00
RESTful 风格添加:POST /user ,删除 DELETE /user 或者 DELETE /user/{id}。
nothingistrue
2023-09-08 12:29:11 +08:00
两个都不对。/user/add 是画蛇添足。/add/user 是分组错误。

RESTful 风格
添加:POST /user 。删除 DELETE /user 或者 DELETE /user/{id}。如果是一般动作,那就是 POST /user/{id}/%动词%
,比如 POST /user/{id}/disable 。
仅 POST 风格
添加:/addUser ,或者/user/addUser 。删除:/deleteUser ,或者/user/deleteUser 。对于后面那个,/user 只是用来分组的,不参与接口命名。
chendy
2023-09-08 12:50:47 +08:00
方法全部 post ,url 格式是 名词 / 动词,动词不限于增删改查,名词放前面是因为名词的区分度更高
rest 是死的,人是活的,硬 rest 得不偿失,命名规范统一易于理解就好
flyqie
2023-09-08 12:54:25 +08:00
/add/user /delete/user

这都是什么邪门路径。。

你这么玩的话,后续路由分组这块怎么做?
caocong
2023-09-08 12:54:42 +08:00
全 post
/user/addUser
/user/deleteUser
+1
flyqie
2023-09-08 12:55:24 +08:00
@flyqie #17

倾向/user/add /user/delete 这种方式
HAYWAEL
2023-09-08 13:08:27 +08:00
肯定是 /user/add /user/delete 不然 你之后后端代码怎么组织,面向对象

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

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

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

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

© 2021 V2EX