1.API(Application Programming Interface)
API就是一个接口;例如玩某一款游戏,你不必知道游戏具体的实现细节,只需要知道点哪个键是哪个技能就够了,而这个键之所以能实现玩家与游戏的交互,是因为开发者提供了这样的接口-API
https://youtu.be/zvKadd9Cflchttps://youtu.be/zvKadd9Cflc
现实世界中API的应用也越来越多,带来大量便利的同时,传统API不够统一规范也成了问题,于是一种结构清晰、统一规范、易于理解、便于扩展的接口风格-RESTful API应运而生
2. REST(Representational State Transfer)
REST是一种软件架构风格,它定义了一组原则和约束条件,用于设计网络应用程序的分布式系统
RESTful 是基于 REST 架构风格设计和实现的 Web 服务或 API
通过遵循RESTful设计原则,可以实现松耦合、可扩展和易于维护的分布式系统和Web服务
3.RESTful API
RESTful API(Representational State Transfer API)是一种设计和实现符合 REST 架构风格的 Web 服务接口。它基于 HTTP 协议,使用 HTTP 方法(GET、POST、PUT、DELETE)对资源进行操作,并通过 URI(统一资源标识符)来定位和标识资源。
- GET:从Server取得资源或是状态。
- POST:将资源发布到Server,例如新增一笔资料。
- PUT:在Server上新增或修改指定资源。
- PATCH:更新Server上现有资源的一部分。
- DELETE:删除Server的资源。
3.1 API端点(API Endpoints)
3.2 RESTful API的设计原则
3.2.1 统一接口(Uniform Interface)
RESTful API具有统一的接口,使用HTTP方法(如GET、POST、PUT、DELETE)和明确定义的请求和响应数据结构的组合来操作资源。通过统一接口,让使用者了解API需要哪些资料,以及返回那些资料,客户端和服务器可以相互通信
3.2.2 无状态(Stateless)
服务器和客户端之间的通信是无状态的,即服务器不会在请求之间保留任何连接状态或上下文信息。每个请求都是独立的,服务器不会依赖先前的请求。
3.2.3 可缓存性*(Cacheability)
RESTful API可以通过缓存来提高服务器的响应时间。服务器可以在响应中设置适当的缓存标头,以指示客户端对响应进行缓存,从而减少对服务器的后续请求。
3.2.4 客户端-服务器分离*(Client-Server Separation)
客户端和服务器之间的关注点分离。服务器负责提供资源和业务逻辑,客户端负责处理用户界面和用户交互。这样可以实现系统的分层和松耦合。
3.2.5 分层系统*(Layered System)
服务器可以将请求转发到其他API,客户端可以连接到其他经过授权的API,同时仍然接收来自服务器的响应。这种分层的结构提供了可扩展性和灵活性。
3.2.6 按需编码*(Code on Demand)
服务器可以将可执行代码传输到客户端,以临时扩展或自定义客户端功能。这使得客户端可以动态地获取特定的代码段,以满足其特定需求。