什么是接口API
此处的接口是APIApplication Program Interface
接口: 前后端通信的桥梁
,某些语言也有接口概念
简单的理解: 一个接口就是 服务中的一个路由规则 ,根据请求响应结果;
接口的作用:
- 实现不同软件之间的连接和通信:通过API,软件可以在业务上实现数据共享和交换
- 提供软件开发人员的工具:API使开发人员可以快速设计和编写代码,简化软件的开发过程
- 提高软件应用程序的性能:API通过有效地传递和处理数据,缩短数据处理时间,提高软件的响应速度
接口的组成:
- 接口访问地址:由协议、IP地址或域名、端口号、应用名和功能名组成。例如,
http://127.0.0.1:8080/api/function
- 请求方法:
GET获取数据)
、POST提交数据)
、DELETE删除数据)
、PUT修改数据
等,定义了客户端与服务器交互的方式 - 请求参数:用户使用接口时,需要向接口提供的数据,参数可以通过URL传递,也可以在请求体中传递
- 返回值响应:接口处理请求后返回给用户的数据,通常包括状态码、数据内容和错误信息
RESTful 风格API:
RESTful API是一种基于REST(Representational State Transfer,表述性状态转移)架构风格的网络应用程序接口:
它利用HTTP协议的标准方法来组织和处理数据,使得Web服务更加清晰、简洁、有层次,且易于维护和扩展:
资源: RESTful API的核心概念是资源,它可以是服务器上的任何东西,如文档、图片或服务,进行标识;
HTTP: 使用标准的HTTP方法来执行对资源的操作:GET读、POST取、DELETE删、PUT改、PATCH...
无状态: 每个请求从客户端到服务器必须包含理解和处理请求所需的所有信息,与之前的请求无关
代码按需: 服务器可以提供可执行代码或脚本,客户端可以选择下载并执行,以扩展客户端功能
统一接口: 具有统一的接口,这意味着无论何种类型的资源,都使用相同的接口方法进行操作
层次化系统: 客户端通常不能直接与存储资源的服务器通信,而是通过中间层来实现交互
可缓存特性: 为了提高网络效率,响应应该定义为可缓存的或不可缓存的
以开发:图书API接口📖📖举例:
操作 | 请求类型 | 请求URL | 结果 |
---|---|---|---|
获取所有图书 | GET | /book | 返回图书列表数组 |
获取单个图书 | GET | /book/:id | 返回单个图书信息 |
新增图书 | POST | /book | 返回新生成的图书信息 |
修改图书 | PUT | /book/:id | 返回更新后的图书信息 |
修改图书 | PATCH | /book/:id | 返回更新后的图书信息 |
删除图书 | DELETE | /book/:id | 返回一个空文档 |
参数:支持多种查询参数,例如排序_sort
、分页_page
和_per_page
、 过滤views_gt
、范围_start
和_end
等
静态文件:如果你创建了一个./public
目录,json-server
将会除了REST API之外,还会提供该目录下的内容
快速搭建简单:RESTful
Node真的太神奇了,NPM包太强大了: 这个是我在学习Java从没有的体验,Java框架越来越多而变的复杂起来
而,Node中一个NPM包几个命令就可以搭建一个简易的:RESTful
API接口请求,实在是太方便了!🙌
Json-Server 本身是一个 JS 编写的工具包,可以快速搭建 RESTful API 服务:
//安装json-server
npm install -g json-server
//设置对应的数据文件:
//图书馆数据库: books 图书信息、users 用户信息
{ "books":[], "users":[] }
//启动json-server
json-server --watch xxx文件.json
😜如此简单:😽😽 就完成了一个简单RESTful 风格的接口开发,当然仅适合临时Demo,真正的项目还是建议MongoDB完善;
- GET
127.0.0.1:3000/books
查询,返回图书列表数组 - GET
127.0.0.1:3000/books/id
查询,返回单个图书信息 - POST
127.0.0.1:3000/books
➕{ "name":"www", "context":"今天天气真不错" }
新增图书信息,支持默认ID