是否需要保持 http method 语义?

post 大法可以搞定大部分需求,少部分请求使用 get,我看了 twitter 的 api 也是这样做的,delete、put 等方法是否还有必要呢?twitter-api

仅仅是为了保持 http 的语义吗?其他好处?

rest·http
287 views
Comments
登录后评论
Sign In
·

Your GraphQL HTTP server should handle the HTTP GET and POST methods.

http-methods-headers-and-body

如果你用 GraphQL 的话确实只有 get、post 方法,不过 rest 接口还是规范 http 语义的好,该 delete 就 delete

·

restful 规范,可以不用看文档即可大致知道对资源的操作

·

restful 规范还是需要的,几年开发经验,我从最开始遵守 restful 到弃用,全用 post/get,再到现在严格规范 restful,经历过很多接口开发,几个好处:

  • 减少文档:接口可以猜出来,开发效率高,规范化
  • 代码生成:可以利用现有代码生成工具,生成测试用例、模板等等
  • 监控方便:需要路由鉴权、安全审计的时候方便
  • 工具配合:很多网络插件配合状态码可以揪出很多异常行为(攻击源)

只用 post/get 开发更快?根据我的经验不会,反而会更乱,人多的时候不规范,有时候不看源码你都不知道接口在哪,返回什么字段(因为文档也会很乱)。

http method 表达能力不够?一开始我也是这么觉得的,但是接口写多了,其实就是自己抽象能力不足的问题,可以参考 google / Microsoft 的 restful 规范,你遇到的问题里面都可以找到。

Google API design guide

microsoft api guidelines

·

好的接口设计本来就不是容易的事,一个接口会被用于:

  • 提供客户端功能
  • 后端单元测试
  • Web/APP 单元测试
  • Web/APP API Mock
  • 全链路性能测试(jmeter)
  • 网关路由表映射、限流、鉴权
  • 安全审计、流量统计
  • 暴露给第三方调用

只用 post 确实开发快,完成第一个需求,但是后面的功能代码会一坨翔,不查文档或看源码不能维护

·

看项目规范了,自己的个人项目不是想咋来就咋来

·

忘记在哪里看到了,Restful 论文的作者也是 http 规范的参与者,没记错的话好像是 http 规范是在他读博期间参与的,然后后来就有了 restful 模式的论文

·

写基础组件时建议严格遵循RESTful,写业务功能建议只用GETPOST