时间: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 /usersGET /users/{id}POST /usersPUT /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 标准可以参考,是十分有必要的,希望对大家有帮助。关键词:咖啡