引言:
## Restful API是根据REST架构原则设计的接口规范,由这个接口规范倡导的命名规范以及请求规范。
涉及知识点:
REST架构
![]()
- 由 ↓ 创立:

- “一切皆资源”为前提:资源可以是一个图片、音乐、一个XML格式、HTML格式或者JSON格式等网络上的一个实体,除了一些二进制的资源外普通的文本资源更多以JSON为载体、面向用户的一组数据(通常从数据库中查询而得到)

- 统一接口: 对资源的操作包括获取、创建、修改和删除,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。换言而知,使用RESTful风格的接口但从接口上你可能只能定位其资源,但是无法知晓它具体进行了什么操作,需要具体了解其发生了什么操作动作要从其HTTP请求方法类型上进行判断 。
1. 概念
Restful APIRESTful是目前最流行的接口设计规范,基于HTTP请求开发;
2. request url规范
/api/资源?id=请求参数
***资源解释:
一般代表资源都是以复数的形式出现,但也有例外,如果是表示一些动作如登录、注册则不需要写成复数
3. restful api 实例
| Request | Response | |||||
| 请求方式 | 注释 (en) | 请求url | 请求参数 | 注释 (zh) | 返回状态; | 返回数据 |
| GET | LIST USERS | /api/users?page=2 | 获取用户列表 | 200 | {
"page": 2,
"per_page": 6,
"total": 12,
"total_pages": 2,
"data": [
{
"id": 7,
"email": "michael.lawson@reqres.in",
"first_name": "Michael",
"last_name": "Lawson",
"avatar": "https://reqres.in/img/faces/7-image.jpg"
},
{
"id": 8,
"email": "lindsay.ferguson@reqres.in",
"first_name": "Lindsay",
"last_name": "Ferguson",
"avatar": "https://reqres.in/img/faces/8-image.jpg"
},
{
"id": 9,
"email": "tobias.funke@reqres.in",
"first_name": "Tobias",
"last_name": "Funke",
"avatar": "https://reqres.in/img/faces/9-image.jpg"
},
{
"id": 10,
"email": "byron.fields@reqres.in",
"first_name": "Byron",
"last_name": "Fields",
"avatar": "https://reqres.in/img/faces/10-image.jpg"
},
{
"id": 11,
"email": "george.edwards@reqres.in",
"first_name": "George",
"last_name": "Edwards",
"avatar": "https://reqres.in/img/faces/11-image.jpg"
},
{
"id": 12,
"email": "rachel.howell@reqres.in",
"first_name": "Rachel",
"last_name": "Howell",
"avatar": "https://reqres.in/img/faces/12-image.jpg"
}
],
"support": {
"url": "Reqres - A hosted REST-API ready to respond to your AJAX requests",
"text": "To keep ReqRes free, contributions towards server costs are appreciated!"
}
} | |
| GET | SINGLE USER | /api/users/2 | 获取用户详情 | 200 | {
"data": {
"id": 2,
"email": "janet.weaver@reqres.in",
"first_name": "Janet",
"last_name": "Weaver",
"avatar": "https://reqres.in/img/faces/2-image.jpg"
},
"support": {
"url": "Reqres - A hosted REST-API ready to respond to your AJAX requests",
"text": "To keep ReqRes free, contributions towards server costs are appreciated!"
}
} | |
| GET | SINGLE USER NOT FOUND | /api/users/23 | 用户不存在 | 404 | {} | |
| GET | LIST <RESOURCE> | /api/unknown | 200 | {
"page": 1,
"per_page": 6,
"total": 12,
"total_pages": 2,
"data": [
{
"id": 1,
"name": "cerulean",
"year": 2000,
"color": "#98B2D1",
"pantone_value": "15-4020"
},
{
"id": 2,
"name": "fuchsia rose",
"year": 2001,
"color": "#C74375",
"pantone_value": "17-2031"
},
{
"id": 3,
"name": "true red",
"year": 2002,
"color": "#BF1932",
"pantone_value": "19-1664"
},
{
"id": 4,
"name": "aqua sky",
"year": 2003,
"color": "#7BC4C4",
"pantone_value": "14-4811"
},
{
"id": 5,
"name": "tigerlily",
"year": 2004,
"color": "#E2583E",
"pantone_value": "17-1456"
},
{
"id": 6,
"name": "blue turquoise",
"year": 2005,
"color": "#53B0AE",
"pantone_value": "15-5217"
}
],
"support": {
"url": "Reqres - A hosted REST-API ready to respond to your AJAX requests",
"text": "To keep ReqRes free, contributions towards server costs are appreciated!"
}
} | ||
| GET | SINGLE <RESOURCE> | api/unknown/2 | 200 | {
"data": {
"id": 2,
"name": "fuchsia rose",
"year": 2001,
"color": "#C74375",
"pantone_value": "17-2031"
},
"support": {
"url": "Reqres - A hosted REST-API ready to respond to your AJAX requests",
"text": "To keep ReqRes free, contributions towards server costs are appreciated!"
}
} | ||
| GET | SINGLE <RESOURCE> NOT FOUND | /api/unknown/23 | 404 | {} | ||
| POST | CREATE | /api/users | {
"name": "morpheus",
"job": "leader"
} | 创建用户 | 201 | {
"name": "morpheus",
"job": "leader",
"id": "473",
"createdAt": "2022-11-01T07:35:54.844Z"
} |
| PUT | UPDATE | /api/users/2 | {
"name": "morpheus",
"job": "zion resident"
} | 修改用户 | 200 | {
"name": "morpheus",
"job": "zion resident",
"updatedAt": "2022-11-01T07:38:34.189Z"
} |
| PATCH | UPDATE | /api/users/2 | {
"name": "morpheus",
"job": "zion resident"
} | 修改用户 | 200 | {
"name": "morpheus",
"job": "zion resident",
"updatedAt": "2022-11-01T07:40:25.996Z"
} |
| DELETE | DELETE | /api/users/2 | 删除用户 | 204 | ||
| POST | REGISTER - SUCCESSFUL | /api/register | {
"email": "eve.holt@reqres.in",
"password": "pistol"
} | 注册用户成功 | 200 | {
"id": 4,
"token": "QpwL5tke4Pnpja7X4"
} |
| POST | REGISTER - UNSUCCESSFUL | /api/register | {
"email": "sydney@fife"
} | 注册用户失败 | 400 | {
"error": "Missing password"
} |
| POST | LOGIN - SUCCESSFUL | /api/login | {
"email": "eve.holt@reqres.in",
"password": "cityslicka"
} | 用户登录成功 | 200 | {
"token": "QpwL5tke4Pnpja7X4"
} |
| POST | LOGIN - UNSUCCESSFUL | /api/login | {
"email": "peter@klaven"
} | 用户登录失败 | 400 | {
"error": "Missing password"
} |
| GET | DELAYED RESPONSE | /api/users?delay=3 | 200 | {
"page": 1,
"per_page": 6,
"total": 12,
"total_pages": 2,
"data": [
{
"id": 1,
"email": "george.bluth@reqres.in",
"first_name": "George",
"last_name": "Bluth",
"avatar": "https://reqres.in/img/faces/1-image.jpg"
},
{
"id": 2,
"email": "janet.weaver@reqres.in",
"first_name": "Janet",
"last_name": "Weaver",
"avatar": "https://reqres.in/img/faces/2-image.jpg"
},
{
"id": 3,
"email": "emma.wong@reqres.in",
"first_name": "Emma",
"last_name": "Wong",
"avatar": "https://reqres.in/img/faces/3-image.jpg"
},
{
"id": 4,
"email": "eve.holt@reqres.in",
"first_name": "Eve",
"last_name": "Holt",
"avatar": "https://reqres.in/img/faces/4-image.jpg"
},
{
"id": 5,
"email": "charles.morris@reqres.in",
"first_name": "Charles",
"last_name": "Morris",
"avatar": "https://reqres.in/img/faces/5-image.jpg"
},
{
"id": 6,
"email": "tracey.ramos@reqres.in",
"first_name": "Tracey",
"last_name": "Ramos",
"avatar": "https://reqres.in/img/faces/6-image.jpg"
}
],
"support": {
"url": "Reqres - A hosted REST-API ready to respond to your AJAX requests",
"text": "To keep ReqRes free, contributions towards server costs are appreciated!"
}
} | ||
本文介绍了RESTful API的设计理念与规范,包括资源的概念、统一接口原则及常见HTTP方法的应用。通过实例展示了如何使用GET、POST、PUT、PATCH和DELETE等方法进行资源的获取、创建、更新和删除。
https://reqres.in/

770

被折叠的 条评论
为什么被折叠?



