请不要再管它们叫REST API了
极客时间编辑部
讲述:初明明大小:2.16M时长:02:21
近日,软件开发人员安德里亚·基亚雷利(Andrea Chiarelli)发表观点称业内很多人都误解了 REST API 是什么,并解释了 REST API 的正确概念。以下为原文的编译内容,希望对你有所帮助。
2000 年初,道格拉斯·克罗克福德(Douglas Crockford,被称为 JavaScript 教父)宣称 JavaScript 是世界上被误解得最深的一门编程语言,造成误解的主要原因是其糟糕的命名方式、设计上的错误和不严格的标准,等等。
事实上,人们对 REST API 的误解也非常深。大多数人认为基于 URL 和 HTTP 动词设计的 API 就是 REST API,这种想法实在是错得离谱。
其实在 REST 指南中,它的概念已经说得很清楚了,REST 这个名词强调了状态转换(State Transfer),只是大多数所谓的 REST API 设计者却忽略了这一点。
如果你问一下身边的程序员,他们设计的 API 是否支持 HATEOAS,他们十有八九会一脸懵地看着你。然而,仔细想想 REST 的概念,就能知道它并没有说要使用哪一种协议,也没有说使用哪一种方式来标识资源,它只说到表示性状态转移(REpresentational State Transfer)。状态转移管理是 REST API 的一个必要条件。
真正的 REST API 应该为客户端提供状态以及在状态之间进行切换的方式,它提供了资源的表示(不一定是 JSON 格式)和指向相关资源的链接(超链接),这些链接可以让应用程序从一个状态切换到另一个状态。
需要特别提到的是,是否使用 HTTP 协议并不重要。REST 的关键之处在于让服务器端来负责客户端的状态转移,客户端的状态几乎是由服务器端来驱动的,所以,讨论 API 版本管理并没有多大意义。客户端只要知道 REST API 的入口点就可以了,剩下的根据服务器端的响应来做决定,但这一点却被大多数人忽略了。
另外,只是简单地将 CRUD 操作映射到 HTTP 动词的 API,与应用程序状态转移丝毫扯不上关系,你可以把它们叫作 Web API 或 HTTP API,但请不要把它们叫作 REST API。
以上就是基亚雷利的观点,你认同吗?欢迎在评论区留下你的看法。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- Jie教条了,restfull只是设计风格,可以允许实践时不同成熟度,从低成熟度的http method到高成熟度的hateoas。5
- kiwi太笼统了,说了restful的误解,却没说明白什么是对的restful
- 上沅同学不是完全认同
- 曲江庐客其实RESTAPI的定义是什么不重要,大家都以为RESTAPI是什么,大家都以这样的方式提供服务也都以这样的方式使用服务,才是最重要
收起评论