1.Restful API
用一句话讲清就是遵守REST风格的API,是通过HTTP的动词(GET\POST\PUT\DELETE)去执行资源。那么啥是REST风格呢,当时看到字面(REpresentational State Trasfer,表现层状态转移)意思挺晦涩的,后面结合例子一下记住了。
小冲想看看其他同事的工资攀比一下时,执行以下操作。
1.输入公司员工信息的网页,搜素关键字“小志”
2.点击小志同事的个人信息页面
3.点击工资详情便可查看具体工资信息
2.RESTful API的设计风格
接下来结合例子说说RESTful API的设计风格:
1.资源 就是小志同事工资信息,跳出这个例子本身,资源是任何内容,如图片,数据,歌曲等。资源可以通过载体表示,如图片可以用JPG格式,文本可以用TXT格式,目前最流行的表示载体是JSON。
2.URI Uniform Resourse identifier,统一资源位置。通过一个URI便可只向资源。对应上述例子的第一步便是输入一个网页查找到整个公司员工的信息。
3.统一接口风格 对于数据的操作离不开CRUD (create,read,update,delete),对应到HTTP方法:GET获取资源,POST新建资源(或更新资源),PUT更新资源,DELETE删除资源。通过上述HTTP方法便统一了对数据的操作。
4.无状态 就是所有的资源都可以通过URL直接定位,不依赖于其他资源或状态。可以看出,上述例子的每一步都是依赖前一步的,即无法直接到达跳到第3步,这就是有状态;如果可以一步到位,在网址上输入URI便直接到达第三步,这种情况就属于无状态。
6.路径(Endpoint) 表示API的具体网址,如表示同事信息的路径可以用:https://api.example.com/v1/tongshi
https是一种通信协议,api.example.com是域名,v1是版本号,tongshi代表同事信息这种资源
7.过滤信息(Filtering) 信息是巨量的,为了限定信息的多少或者特定的信息,后台的服务器(server)会根据前端参数过滤返回结果。https://api.example.com/v1/tongshi?limit=100
?limit=100:代表指定返回100条记录
3.为啥要使用这种风格的API呢?
首先解释一下API:(APplicantion interface )应用程序接口,它可以理解为前后台交互的桥梁,前端通过调用API向后台发起请求,后台的server处理完成请求后,便可响应前端;
使用RESTful API的原因:后台server处理数据时,是可以通过多种媒体(安卓手机,PC电脑,苹果平板等等)的前端传入。为了使得一个后台便可处理多种不同类型前端的数据,那就需要大家遵循一套统一的风格交互。
4.Google对于Rest API的解释
说了那么多,现在就不难理解以下“官方”解释了
A REST API (also known as RESTful API) is an application programming interface (API or web API) that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services. REST stands for representational state transfer and was created by computer scientist Roy Fielding.
REST API(也称为RESTful API)是一种应用程序编程接口(API或web API),它符合REST体系结构风格的约束,允许与RESTful web服务进行交互。REST代表具象状态转移,由计算机科学家Roy Fielding创建。
REST is a set of architectural constraints, not a protocol or a standard. API developers can implement REST in a variety of ways.
REST是一组体系结构约束,而不是协议或标准。API开发人员可以以多种方式实现REST。
https://www.redhat.com/en/topics/api/what-is-a-rest-api