时间:2023-08-25 03:48:01 | 来源:网站运营
时间:2023-08-25 03:48:01 来源:网站运营
一杯咖啡的时间☕️,搞懂 API 和 RESTful API!:API
和RESTful API
是每个程序员都应该了解并掌握的基本知识,我们在开发过程中设计 API
的时候也应该至少要满足一些最基本的要求。API
或你没有了解RESTful API
,你可以选择花5
分钟时间看下去,我会最通俗易懂的帮你普及这一切。 2000
年我们还在用小灵通的时代,网上购票已经慢慢兴起,但是绝大部分人出行还是「通过电话查询航班来去选择购票」,我们首先需要「打电话」到附近的站台根据时间「询问」航班或车次,得到结果后再去到对应站台进行购票。App
也映入眼帘,大家也「学会了如何在App
上进行购票」。App
输入你的「起点」和「终点」后,会展现所有符合条件的车次,航班,不仅仅只有时间、座位,还有航空公司、预计时间等等等等详细信息「一目了然」,你只需要根据你的需求购买即可。App
进行购物、阅读、直播,我们以前所未有的方式和世界与人们相连接。App
能够这么便利?这些资料为什么会可以从A
到达B
,为什么我们只需要动动手指就可以达到这一切?API
,API
,全名 Application Programming Interface (应用程式界面)
,简单来说,是品牌开发的一种接口,让第三方可以额外开发、应用在自身的产品上的系统沟通界面。API
,他传达你的要求到系统,而站台就是这个系统,比如告诉它查询明天飞往杭州的飞机,那么他就会得出结果,由电话员传递给你。API
和航空公司互动。API
让我们使用这些旅游 App
,那么这个道理也一样适用于生活中任何应用程序、资料和装置之间的互动,都有各自的API
进行连接。(API)
的要求没那么高。web
应用程序主要是在服务器端实现的,因此需要使用复杂的协议来操作和传输数据。然而,随着移动端设备的普及,需要在移动端也能够访问 web
应用程序,而客户端和服务端就需要接口进行通信,但接口的规范性就又成了一个问题。RESTful
风格的接口(RESTful API)
刚好有以上特点,就逐渐应运而生。REST
,全名 Representational State Transfer
(表现层状态转移),他是一种「设计风格」,一种「软件架构风格」,而「不是标准」,只是「提供了一组设计原则和约束条件」。RESTful
只是转为形容詞,就像那么 RESTful API
就是满足 REST
风格的,以此规范设计的 API
。API
一般都长这样子:RESTful
风格的 API
却长这样子:Roy Fielding
是 HTTP
协议的主要设计者之一,他在论文中阐述了 REST
架构的概念并给出了 REST
架构的「六个限制条件」,也就是「六大原则」。 API
,这是最直观的特征,是 REST
架构的核心,统一的接口对于 RESTful
服务非常重要。客户端「只需要关注实现接口」就可以,接口的「可读性加强」,使用人员「方便调用」。RESTful API
通过 URL
定位资源,并通过 HTTP
方法操作该资源,对资源的操作包括获取、创建、修改和删除,这些操作正好对应 HTTP
协议提供的GET
、POST
、PUT
和DELETE
方法。 GET
:获取资源信息。POST
:创建一个新资源。PUT
:更新已有的资源。DELETE
:删除已有的资源。 RESTful
的团队里,后端只需要告诉前端 /users
这个 API
,前端就应该知道: GET /users
GET /users/{id}
POST /users
PUT /users/{id}
DELETE /users/{id}
API
数量非常多,系统非常复杂时,RESTful
的好处会越来越明显。理解系统时,可以直接围绕一系列资源来理解和记忆。token
。接下来的所有请求都需要携带上这个 token
而不是系统在第一次登录成功之后记录了你的状态。HTTP
状态码,服务器可以告诉客户端这个数据是否可以被缓存。HTTP
响应头中包含一个 Cache-Control
字段,用于告诉客户端该数据可以缓存多长时间。这样可以提高数据传输的效率,从而降低网络带宽的开销,加速数据的访问速度。Code on Demand
是可选的,但它可以使 RESTful API
变得更加灵活和可扩展。RESTful
风格的 API
呢? HTTP
设计了很多动词,来标识不同的操作,不同的HTTP请求方法有各自的含义,就像上面所展示的,RESTful API
应该使用 HTTP
方法(如 GET、POST、PUT
和 DELETE
)来描述操作。RESTful API
的方法,据我了解常见的版本控制方式包括: URL
来表示不同的版本,例如 https://api.example.com/api/v1/resources
和 https://api.example.com/api/v2/resources
。Accept
字段来表示版本。https://api.example.com/resources?version=1
和 https://api.example.com/resources?version=2
。API
都各有不同,但我觉得 RESTful API
版本控制的方法要尽可能的简单,易于理解和使用直接将版本放到 URL
中,直截了当,简单明了。API
应该使用简洁明了的 URL
来标识资源,并且在同一个资源上使用不同的 HTTP
方法来执行不同的操作。URL
,形式千奇百怪,不同的开发者还需要了解文档才能调用。RESTful
风格的 URL
,形式固定,可读性强,根据名词和 HTTP
动词就可以操作这些资源。tips
,如果你遇到了实在想不到的 URL
,你可以参考github开放平台 [1],这里面有很多很规范的 URL
设计。HTTP
状态码是 RESTful API
设计的重要一环,是表示 API
请求的状态,用于告知客户端是否成功请求并处理数据。常用的 HTTP
状态码有: 200 OK
:请求成功,表示获得了请求的数据201 Created
:请求成功,表示创建了一个新的资源204 No Content
:请求成功,表示操作成功,但没有返回数据400 Bad Request
:请求失败,表示请求格式不正确或缺少必要参数401 Unauthorized
:请求失败,表示认证失败或缺少授权403 Forbidden
:请求失败,表示没有访问权限404 Not Found
:请求失败,表示请求的资源不存在500 Internal Server Error
:请求失败,表示服务器内部错误JSON
和 XML
。JSON
是现在比较流行的数据格式,它是简单、轻量、易于解析,并且它有很好的可读性。XML
也是一种常用的数据格式,它的优点是比较灵活,并且支持各种数据类型。API
,当然也就离不开 API
文档,但是文档的编写又成为程序员觉得麻烦事之一,甚至我还看到有公司的的 API
文档是用 Word
文档手敲的。API
的软件,每个人都有自己的选择,我给大家推荐一款 API
管理神器 Apifox[2],可以一键生成 API
文档。API
即可生成,现在也支持了「多种导航模式」、「亮暗色模式」、「顶部自定义 Icon
、文案可跳转到你的官网等地址」。RESTful
风格的 API
固然很好很规范,但大多数互联网公司并没有按照或者完全按照其规则来设计,因为 REST
是一种风格,而不是一种约束或规则,过于理想的 RESTful API
会付出太多的成本。RESTful API
,请确保它符合您的业务需求。例如,如果您的项目需要实现复杂的数据交互,您可能需要考虑使用其他 API
设计方法。API
设计方法时充分考虑您的业务需求。此外,您还需要确保 RESTful API
与您的系统架构和技术栈相兼容。通过这些考虑,您可以确保 RESTful API
的正确使用,并且可以实现更高效和可靠的 API
。API
设计也不只是后端的工作,而是一个产品团队在产品设计上的协调工作,应该整个团队参与。API
与 RESTful API
,在实际运用中,并不是一定要使用这种规范,但是有 RESTful
标准可以参考,是十分有必要的,希望对大家有帮助。关键词:咖啡