对接同事的接口,他定义的所有接口都是 post 请求,理由是 https 用 post 更安全

2022-01-23 10:29:15 +08:00
 caicaiwoshishui
之前习惯使用 restful api ,如果说 https 只有 post 请求是安全的话?那为啥还需要 get 、put 、delete ?我该如何反驳他。
28146 次点击
所在节点    程序员
195 条回复
h1104350235
2022-01-24 10:19:27 +08:00
一楼没啥问题
NeoZephyr
2022-01-24 10:22:04 +08:00
restful 还是太脆弱了
Marmot
2022-01-24 10:24:19 +08:00
@hlwjia 刚想说这个,全 post 其实没什么
phxsuns
2022-01-24 10:32:38 +08:00
全 post 挺好的。后续再也不用沟通 method 了。
前端用起来也方便啊,封装请求方法入参只需要接口地址和入参 json 就好了。
RainyH2O
2022-01-24 10:37:09 +08:00
稍微又思考了下,其实 REST 本身也不是规范,而是一种风格。归根结底,只要能抽象成面向资源就 REST ,不能就 RPC 。安全这个就纯属扯淡了。更全面的分析我建议看看周志明大佬的观点: https://icyfenix.cn/architect-perspective/general-architecture/api-style/rest.html
Mrun
2022-01-24 10:41:55 +08:00
@seers #29 本来就一样,在协议上,只是方法名不一样,余下的都是一样的
sunus
2022-01-24 10:48:09 +08:00
RESTful 不是规范,只是个风格。风格的东西,团队内部有个共识能执行最重要。无论这个共识是负责人强制规定的,还是大家协商确定的。最怕是每个人各搞一套。
hardy4y
2022-01-24 11:24:41 +08:00
@winglight2016
终于遇到 111 楼的一个正常人。
规范就是让大家达成共识,降低理解成本的。
什么安全不安全的都是骗小学生的。
Hanggi
2022-01-24 12:45:04 +08:00
不要再宣扬什么全 POST 没啥问题的这种奇葩言论了。
(这就跟关系型数据不要用 join 一样,你可以这么做,但是不要宣扬这是对的。)

试想,哪天你们公司有机会做一个开放的 API 平台,然后一看文档里面全是 POST 。。。
还有人愿意用吗?随便翻翻国内大厂的 API 开放平台,哪个有全 POST ,不把你直接踢出去。

你一个 HTTP API 接口,既不遵守 Method 也不返回相对应状态码还有理了。
不要给自己的不合规找冠冕堂皇的理由。

请按照规范使用 HTTP Method 和相对应的状态码返回请求值。
bk201
2022-01-24 12:51:19 +08:00
我觉得不是设计了某个东西,就必须用上。
ktqFDx9m2Bvfq3y4
2022-01-24 13:16:39 +08:00
@bk201 #170 明白人。ddd 同样如此,没必要照搬。

@Hanggi #169 http 码可以约束浏览器,没必要约束 api 。强行和业务绑定迟早会遇到找不到合适的码的情况。api 对接,你是没有遇到只能通过 email 来对接的。JSON post 比那种奇葩的自定义序列化方法然后放 URL 里面好太多了。
xingheng
2022-01-24 13:17:57 +08:00
RESTful 定义的拉屎的地方,他非要在那儿吃饭。为什么要打扰他?
loading
2022-01-24 13:18:53 +08:00
除了 get 就用 post ,极端点全部用 post 确实省事,以前我也傻看什么 put delete ,不兼容都是瞎扯。

你让我和一个不懂的人说理由,我也会说更安全,说其他的我懒得去解析。
zalss
2022-01-24 13:49:04 +08:00
他可能只是不想被你卷,他有什么错
shyangs
2022-01-24 14:20:38 +08:00
@Hanggi

看來阿里巴巴旗下的淘寶丟人了,
淘寶開放平台全 POST.

raysonlu
2022-01-24 15:12:07 +08:00
想不到啊,一个简单的问题炸起这么大的讨论。看来经典面试题目“说出你对 get 和 post 请求的理解"还是不能撤掉
lisongeee
2022-01-24 15:17:20 +08:00
《定义的所有接口都是 post 请求》- 我觉得这很好,甚至还可以直接用 jsonrpc ,因为统一的规范比什么都重要。
《理由是 https 用 post 更安全》- 我觉得 ta 是个傻逼。
HAYWAEL
2022-01-24 15:28:11 +08:00
@gstqc 根据我的经验。用了 post 之后,就弱化了 method ,都从路径来看,例如 api/getUserName. api/createUserName 。PS:我习惯用 Restful ,但是一些场景 也是自由发挥,因为 restful 在一些场景用 就会不太舒服
Gota
2022-01-24 15:29:56 +08:00
@shyangs 要不是工作需要, 我碰都不想碰淘宝的坑爹 API.
有些状态码根本对不上, 明明不能重试的错误, sub_code 里写个稍后再试.
还有接口为了偷懒, 返回值里直接找个文本字段, 各种 JSON 字符串往里面塞, 传不同的参数, 这个字段里返回的数据格式都不一样, 全靠自己摸索.
还有各种乱七八糟的情况, 明显是规范覆盖的不全面, 维护接口的几代人各自有各自想法, 越整越乱.
0ZXYDDu796nVCFxq
2022-01-24 15:32:37 +08:00
@HAYWAEL URL 里带 get/create 就有点不 restful 了

API 接口要考虑幂等性,通常来说,GET PUT 是幂等的,全都 POST 鬼知道是不是幂等

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

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

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

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

© 2021 V2EX