同事说:后台接口不能使用除 post/get 之外的方法,path 里不能带参数

2020-01-02 16:42:17 +08:00
 unco020511

我写了接口文档,尽量按照 RESTful 风格写的,然后前端+部分后台同事说不能用 put 和 delete,还有 path 里不能带参数; 我问为啥,他说这样不规范 我该如何说服同事?

获取对应学期下评语:[get] /back/remark/{termId} 删除数据:[delete] /back/record/{recordId}

22175 次点击
所在节点    Java
181 条回复
zjsxwc
2020-01-03 09:29:51 +08:00
jowan
2020-01-03 09:36:10 +08:00
@darknoll 没啥困难啊 我们就是拦截器处理的 只是前端抱怨的理由啊
tolking
2020-01-03 09:38:46 +08:00
这种还是听后端的,像我们全部用 post
wupher
2020-01-03 09:41:33 +08:00
唉,你们同事不一定愿意学习新知识或者新技能。

如果相性不合,还是早分手好。
nooper
2020-01-03 09:47:47 +08:00
doge~
xxdd
2020-01-03 09:48:49 +08:00
记得之前 V 站有个 delete 接口被 google 爬虫爬的 ··· 文章全被删了 哈哈
szpShang
2020-01-03 09:49:47 +08:00
要么适应他们,要么改变他们,要么就滚。


反过来你想,规则越少,是不是管理越好。条条道路通罗马,如果你的管理只允许两条道路才能走,是不是好控制。每个人都想自己的方式去罗马。管理是不是越复杂了。
Vegetable
2020-01-03 09:50:32 +08:00
不让用非 getpost 就算了,path 带参数也不行?任何一个后端框架的路由部分都要明确说明是怎么解析 path 参数的吧?
lxrmido
2020-01-03 09:55:43 +08:00
锅在各个占据市场又不思进取的安全厂商上吧……
每次用 POST/GET 以外的,安全扫描报告就来个“未关闭 OPTION”的中位漏洞
要不就是请求莫名其妙被拦截,让 WAF 方看日志就是“不安全的请求方式”、“疑似攻击”
愁……
securityCoding
2020-01-03 10:02:08 +08:00
@xxdd 这。。。。233
micean
2020-01-03 10:30:26 +08:00
@cryingsky

历史软件原因
缺少权限验证
JoanVon
2020-01-03 10:33:11 +08:00
其实这个不允许使用,有些还是测试的自动化安全扫描的锅...对 put delete 这种请求会报安全错误。。每次解释都费劲,最后就妥协了。只用 get post 了...
fkdog
2020-01-03 11:36:57 +08:00
楼主就一个小年轻,还有楼上扯什么不爱学习的,我可去 xxx 的吧。什么时候 api 设计风格变成了一种专业技能了?

restful 只是一种 api 设计风格,什么时候变成了强制规范了?有什么 PUT/DELETE 能完成而 POST 不能完成的东西么?
非要把 restful 当成圣经一样是不是傻?搞得自己弄个 restful 就高人一等一样。团队的约定是什么样的,那就好好去遵守行么?

后端遗留有很多历史代码,你这边自作主张加了 PUT/DELETE,可能后端需要做其他的调整,特别是 java 这种各种拦截器了,或者是运维网关上有禁了 PUT 之类方法的。

综上,2020 还 restful 至上的,有一个算一个傻 x。整个阿里巴巴 api 网关就用 post/get,撑起了整个亿级的微服务系统,你那点破流量的项目还在纠结 put 和 post,不觉得滑稽?
mysunshinedreams
2020-01-03 11:44:56 +08:00
正确吧,我记得之前在一家公司的时候,BGP 把 put 请求拦截了,所以以后一般不用了。
我司目前也不允许请求 URL 上写 pathVariable,因为流控无法对这种情况生效。
SY413927
2020-01-03 11:54:31 +08:00
恰好我是前端
恰好我们之前也遇到过
先不说 put delete 的问题
path 带参数,是真的恶心人啊

前面几十个接口全是正常的 post 带 body,
突然一个查询列表接口,要求我把参数拼在路径上
我拼个锤子哦
虽然我写起来不麻烦
但是我不舒服,就怼回去了
holinhot
2020-01-03 11:58:38 +08:00
全 post 然后用 json 包起来
chairuosen
2020-01-03 12:06:32 +08:00
这样挺好的
exploreXin
2020-01-03 12:13:01 +08:00
RESTfull, 是啥都不知道,就别想跟对方沟通了,交流成本太高,放弃吧。如果整个团队都把不规范当做规范来做,那么你的规范就是众矢之的,要么忍要么滚,简单的话语里蕴含职场大哲学,哪个神经病会承认自己有病?在一堆精神病人群中想保全自身性命的唯一方法是跟他们 “同流合污”,同时不要忘记自己写烂代码不是自己只能写烂代码,而是选择写烂代码,等羽翼丰满,钱和技术都积累够了,qtmd 规范吧,老子滚了,你们继续你们的规范吧,我去找其他适合我的团队去了。
wc951
2020-01-03 12:28:55 +08:00
@fkdog 虽然你扯了阿里的虎皮当大旗,但其实阿里的 api 也并不是完全统一的,至少阿里云的 api 文档明显可以看出不同的团队风格确实不一致,像容器服务的 api 就是 restful 的,更有 oss 这种完全和 s3 一样的,也有弹性伸缩,ecs 那种通过 action 参数区分 api 的
iugo
2020-01-03 13:13:27 +08:00
直到后端开始为钉钉小程序写服务, 才知道为什么要这么做.

部分手机上的钉钉小程序不支持 PATCH, PUT, DELETE 等常用方法.

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

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

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

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

© 2021 V2EX