@
twl007 > 感觉你可以去跟 Box API 的团队讨论下 API 设计 人家 get put post 语义明确 用起来一点毛病没有
> 不知道 Box 算不算特定领域亦或是人家对安全要求低 反正没见人家有这个问题
我好像没说过所有 PUT/DELETE 不安全吧,包括转的帖,也是说特定场景下的不安全比如文件服务相关的,而比如前面其他人提到的云厂 API PUT ,以及你提到的 box google ,API 接口控制好,我也没说有安全问题,但这些都是控制好的前提下,我们不能指望所有团队都按照你提到的厂的规范,尤其这世上还存在很多健在的 php asp jsp 项目。
我之前有说,在这个帖子里关于 PUT 的观点包括几个方面:
1. 安全规避以及替代成本不高
2. 与其他方案对比的优劣
3. 工程、跨工种 /部门 /公司协作
我并没有说 REST 就一定不安全、不能用。但是 PUT 在现实场景里,就是有的人会面临 1 和 3 的额外的麻烦比如楼主的项目,而如果不用 PUT ,则可以免掉这个麻烦,而且抛开项目历史包袱,POST 替代 PUT 成本也可以忽略
REST 的各种 Method ,一是基于 HTTP 协议本身,二是基于社区发展实践和历史,按照工程实践形成的规范继续实践下去也 OK ,但是我说的是与其他方案对比的优劣,如我 #88 中说过的,各位没有考虑参照物对比、只是说 REST 可以用,各位跟我聊的甚至不是一个事情
#88 我已经解释了一些,各位有没有想一下,如果早期 HTTP 就没 Method ,大家还必须依赖 Method 吗?只用路由能搞定吗? RPC 的 'Method' 其实是相当于 HTTP 的路由,RPC 其实没有 HTTP 这种在路由之外额外再套上的 Method 区分,即使 GCP 文档里的 PB RPC Service 定义部分,也是直接把 HTTP Method 映射到 RPC Method 上(就是方法 /函数名),相当于我 #88 说的 路由+参数 两个维度,并不需要三个维度。其他的很多自定义二进制协议场景也是类似,路由 /方法名 /命令号 + 参数 这两个点就足够了,也是并不需要非得搞成三个维度
我真正想聊的,是自底向上从不同的设计方案来对比 A 和 B 两种方案或者设计 /使用方式,哪种更简化、更省更好,而不是各位这种多是自顶向下从如何使用 A 或者在 A 的历史实践中形成的经验如何好用。
所以跟 box 聊设计或者跟 google 文档对比,跟我说的这些都没什么关系,希望有人能 get 到我说的点,而不是继续跟我聊 A 方案为什么好用。