后端接口中连续多个路径参数,这样设计接口是不是不太好

2021-06-01 11:43:22 +08:00
 darknoll

比如 api/appX/{路径参数 1}/{路径参数 2}/{路径参数 3}

2296 次点击
所在节点    程序员
13 条回复
zoharSoul
2021-06-01 11:52:42 +08:00
github api 好像就有这种.
SingeeKing
2021-06-01 13:06:52 +08:00
连续三个太奇怪,但

api/appX/{路径参数 1}/描述 2/{路径参数 2}/ 这种还是挺常见的
CodeCodeStudy
2021-06-01 13:07:57 +08:00
不好,非常不直观
no1xsyzy
2021-06-01 13:18:06 +08:00
如果你有很明确的层级关系,这样一点问题都没有。但如果没有层级关系,这样就是在降低可维护性。

甚至还见过
.../{参数 1}/{参数 2}

.../{参数 1}/{参数 2}/False
是两个完全不同的接口,两个返回 json 字段重合的只有一个 id
mikulch
2021-06-01 13:26:21 +08:00
看你多大的项目了。一般的项目不要要求太严格了。。
Hstar
2021-06-01 13:27:32 +08:00
如果你的路径参数是语义化的,如 api/appX/earth/asia/china,我觉得还行,如果是 api/appX/3/5/7,那就太垃圾了
NotFoundEgg
2021-06-01 14:01:03 +08:00
连续 2 个 我感觉看着都很难受
KarmaWu
2021-06-01 14:33:38 +08:00
改造成 api/appX?param1=xxx&param2=xxx 不好么
Rache1
2021-06-01 15:21:31 +08:00
一般 rest 风格,最好参数前面要有实体名字的,如果是 filter 参数的话,还是建议使用 GET 或者 POST 的 payload 传递,而不是这种强行拼接
IvanLi127
2021-06-01 15:28:59 +08:00
具体问题具体分析,得看这参数有没有层级关系,没有的话大概率不合适,有的话那还成,当然。。。能一步到位的话应该考虑直接用最后一个参数来获取数据。
chinvo
2021-06-01 15:35:37 +08:00
filter 不用路径参数

别把伪静态那套风格带进 rest
Vitta
2021-06-01 17:36:53 +08:00
这种感觉好难受
Symo
2021-06-01 17:45:39 +08:00
事后写 access log 正则的时候会非常麻烦

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

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

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

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

© 2021 V2EX