1. Web开发模式※
1.1前后端不分离※
前端浏览器→请求动态页面→后端服务器:查询数据库,渲染模板界面,返回渲染后的结果→返回HTML界面→前端浏览器
缺点:针对不同客户端,需要开发不同的后端接口
1.2.前后端分离※
浏览器→请求静态页面→静态文件服务器→返回静态文件→浏览器
浏览器→请求数据→后端服务器→返回所需数据(JSON、XML格式)→返回数据→浏览器
特点:使用API进行数据交换,一套API可以支持多个不同平台
2.Restful介绍※
Restful是目前最流行的API设计风格,是一组架构约束条件和原则。满足这些条件和规则的应用程序或设计就是Restful。
2.1 特点※
(1)每一个URI代表1种资源
(2)客户端使用GET、POST、PUT、DELETE 4个表示操作方式对服务端资源进行操作
a. GET 获取资源
b. POST 新建资源
c. PUT 更新资源:整体更新
d. PATCH 更新资源:局部更新
e. DELETE 删除资源
(3)资源形式是XML或JSON
(4)客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求必须包含理所必须得信息(token)
3.Restful API设计风格※
3.1.Http动词※
3.2.url路径※
(1)尽量使用名词
(2)不管是单一资源还是所有资源,路径中名词尽量使用复数
3.3.过滤参数※
如果接口需要通过条件过滤返回结果,那么过滤的条件参数,应该作为查询字符串的参数传递
3.4 返回状态码※
客户端的每一次请求,服务器都必须给出回应。回应包括HTTp状态码和数据两部分
HTTP状态码,三位数,五个类别,100多种状态码
1xx:需要客户端补充相关信息(API不需要这类代码)
2xx:操作成功
3xx:重定向
4xx:客户端错误
5xx:服务端错误(1)2xx状态码
200状态码表示操作成功,Restful api设计风格中,不同的方法可以返回更精确的状态码
- GET:200 OK
- POST:201 Created,表示生成了新资源
- PUT:200 OK
- PATCH:200 OK
- DELETE:204 No Content,表示资源已删除
注意点
- 202 Accepted状态表示服务器已经收到请求,但还未进行处理,会在未来再处理,通常用于异步操作。
- 发生错误时,不应该使用200状态码
(2) 4xx状态码
4xx状态码表示客户端错误,主要有下面几种
- 400:服务器不理解客户端的请求,未做任何处理
- 401:用户未提供身份验证凭据或者身份验证失败
- 403:权限不允许
- 404:资源不存在
- 405:通过身份验证,但HTTP方法不在权限之中
- 410:资源已被转移
- 415:不支持客户端要求的返回格式
- 422:无法处理客户端上传的附件
- 429:请求次数超过限额
(3) 5xx状态码
5xx表示服务端错误
- 500:客户端请求有效,服务器处理时发生意外
- 503:服务器无法处理请求,一般用于网站维护
3.5 返回内容※
服务器返回的数据格式,应尽量使用JSON