1. 定义
RESTful架构是一种接口设计架构风格,而不是标准,只是提供了一组设计原则。
2. 风格
-
http://服务器地址:端口号[/项目名称/版本]/**资源**集合[/单个资源]
- http://:为我们HTTP协议的访问头标准 - 服务器地址:为我们项目服务器IP地址 - 端口号:为我们服务器内项目访问的指定编号 - [/项目名称/版本]:可选 - 资源:互联网-图片、音乐、视频、文本、数据
3. RESTful相关知识(科普)
3.3 HTTP请求方法
- GET(SELECT):从服务器取出资源(一项或多项)。
- POST(CREATE):在服务器新建一个资源。
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
- DELETE(DELETE):从服务器删除资源。
3.4 响应状态
客户端请求服务求后,服务器响应给客户端的状态码。
3.5 状态码集合汇总
序号 | 状态码 | 动词 | 说明 |
---|---|---|---|
01 | 200 OK | [GET] | 服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)幂等:无论执行操作多少次,结果都会执行1次结果相同 |
02 | 201 CREATED | [POST/PUT/PATCH] | 用户新建或修改数据成功 |
03 | 202 Accepted | [*] | 表示一个请求已经进入后台排队(异步任务) |
04 | 204 NO CONTENT | [DELETE] | 用户删除数据成功 |
05 | 400 INVALID REQUEST | [POST/PUT/PATCH] | 用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的 |
06 | 401 Unauthorized | [*] | 表示用户没有权限(令牌、用户名、密码错误) |
07 | 403 Forbidden | [*] | 表示用户得到授权(与401错误相对),但是访问是被禁止的 |
08 | 404 NOT FOUND | [*] | 用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的 |
09 | 406 Not Acceptable | [GET] | 用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式) |
10 | 410 Gone | [GET] | 用户请求的资源被永久删除,且不会再得到的 |
11 | 422 Unprocesable entity | [POST/PUT/PATCH] | 当创建一个对象时,发生一个验证错误 |
**12 | 500 INTERNAL SERVER ERROR | [*] | 服务器发生错误,用户将无法判断发出的请求是否成功** |
3.6 对结果进行判断
序号 | 方法 | 预期结果 |
---|---|---|
01 | GET | collection:代码:200;数据:返回资源对象的列表(数组) |
02 | GET | collection/resource:代码:200;数据:返回单个资源对象 |
03 | POST | collection:代码:200/201;数据:返回新生成的资源对象 |
04 | PUT | collection/resource:代码:200/201;数据:返回完整的资源对象 |
05 | DELETE | collection/resource:代码:204;数据:返回为空 |
4. 总结(RESTful)
序号 | 名称 | 值 |
---|---|---|
01 | 定义 | 一种软件架构风格、设计风格,而不是标准 |
02 | RESTful风格 | http://服务器地址:端口号/[服务名]/[版本]/资源集合/单个资源 |
03 | 请求方法 | GET(获取资源);POST(新增资源);PUT(更新资源);DELETE(删除资源) |
04 | 状态码 | GET:200;POST:200/201;PUT:200/201;DELETE:204 |
05 | [JSON] | 是一种轻量级的数据交换格式;JSON是已键/值对组合方式,键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值: 1 {"name": "张三","age":18} |
5.实例
如http://127.0.0.1:9999/api/departments/T01/classes/2017T01C01/students/2017T01C010013/这个接口,访问T01学院,2017T01C01班级,2017T01C010013学号的学生