REST API 是什么 - 程序员与服务之间沟通的语言
来源:湖北国菱计算机科技有限公司-荆州网站建设-荆州软件开发-政府网站建设公司
时间:2020-08-20
任何语言的本质都是一套规则的合集。比如说,中文里要求句子要有主谓宾,而作为母语为中文的我们,一旦有人说了一句缺少主语的话,我们会直觉性地感觉很奇怪。
比如说,如果有人对你说“是一个神人”。
你会直觉地问:究竟谁是一个神人?
同样的,在各个程序的沟通中,或者各个服务的沟通中,我们也需要类似“语言”的东西,让我们可以不需要太多的上下文,就可以前端理解后端、后端也理解前端。
设想一下,有多少次你跟前端一起需要前后端 联调?有多少次前端觉得你定义的 API 不够方便直观,一定要你多返回一个参数或者改一下端点路径?
其实本质上,你们在 联调 时就是在尝试设计一个“语言”,以方便互相可以更容易地理解对方。
比如说,后端会要求前端说,你调用 POST /user/abc 就可以创建一个名为 abc 用户了。
短线来讲这当然没问题,你们可以几乎任意地定义 API 端点,任意地调整传递的参数。但是一旦项目开始变复杂,问题就开始出现了。
首先大家有不同的经验和喜好,对 API 的定义可能千差万别,所谓众口难调
系统开始复杂后,各个系统之间的 API 因为定义的人的不同,会开始出现不一致,导致每个端口调用前需要详细阅读文档(如果有的话)或者与 API 设计者无穷无尽地讨论和会议
如果你的 API 是面向客户的,比如如果你是一家软件服务公司,那么你自定义的 API 会增加客户接入的成本
等等等等
因此,要是有一套人类通用的"语言“或者”规范“,来指导大家定义 API 的方式,那样该多好?
REST API 就是这样一种规范,它是目前整个互联网应用最广泛的 API 规范。有意思的是,REST是由它的提出者 Roy Fielding 在他读书期间,写的博士论文里提出的。