什么是 REST API?
创建于 2024年1月29日修改于 2024年5月5日
REST(Representational State Transfer,表现状态转移) 是一种用于设计网络应用程序的架构风格。 RESTful API 表示一个符合REST原则的通过互联网进行通信的接口。RESTful API 通常用于在不同软件系统之间实现通信。
RESTful API的关键原则
-
基于资源:RESTful API 的基础概念是“资源”(即可被识别和操作的实体)。资源可以表示对象、数据或服务。
-
统一接口:RESTful API 具有统一的接口,通常由标准的 HTTP 方法(GET、POST、PUT、DELETE)组成,用于对资源执行操作。每个资源由URI(统一资源标识符)唯一标识。
-
无状态:“无状态”意味着客户端向服务器的每个请求都必须包含理解和处理请求所需的所有信息。服务器不应在请求之间存储关于客户端状态的任何信息。
-
呈现:RESTful API 中的资源以JSON或XML格式呈现。客户端可以与这些呈现交互以执行对资源的操作。
RESTful API 允许客户端以标准和可预测的方式与服务器上的资源交互。它通常用于 Web 开发,以实现 Web 应用程序和服务器之间的通信。例如,当你访问网站并且该网站使用 JavaScript 从服务器检索数据时,你很可能正在与一个 RESTful API 进行交互。
由于其简单易用且可扩展性强,RESTful API 得到了广泛采用。除了 Web 服务之外,它还广泛应用于移动应用程序后台开发以及物联网(IoT)等。
示例
以使用 RESTful API 管理一个书籍集合为例。该 API 允许你执行基本操作,如检索书籍列表、添加新书籍、更新书籍信息和删除书籍。
1. 获取书籍列表(GET请求)
- 端点:
/api/books
- 描述:检索所有书籍的列表。
- 示例响应:
[
{
"id": 1,
"title": "FOURTH WING",
"author": "Rebecca Yarros"
},
{
"id": 2,
"title": "To Kill a Mockingbird",
"author": "Harper Lee"
}
]
2. Get a Single Book (GET Request)
- 端点:
/api/books/{id}
- 描述:通过ID检索特定书籍的详细信息。
- 示例响应:
{
"id": 1,
"title": "The Catcher in the Rye",
"author": "J.D. Salinger",
"publication_year": 1951
}
3. Add a New Book (POST Request)
- 端点:
/api/books
- 描述:向集合中添加新书籍。
- 请求体:
{
"title": "1984",
"author": "George Orwell",
"publication_year": 1949
}
- 示例响应:
{
"id": 3,
"title": "1984",
"author": "George Orwell",
"publication_year": 1949
}
4. Update a Book (PUT Request)
- 端点:
/api/books/{id}
- 描述:更新特定书籍的信息。
- 请求体:
{
"title": "The Catcher in the Rye",
"author": "Jerome David Salinger",
"publication_year": 1951
}
- 示例响应:
{
"id": 1,
"title": "The Catcher in the Rye",
"author": "Jerome David Salinger",
"publication_year": 1951
}
5. Delete a Book (DELETE Request)
- 端点:
/api/books/{id}
- 描述:通过ID删除特定书籍。
- 响应体中无内容。