什么是restful?
restful是当下最流行的接口设计规范,前端和后端都必须知道的一种规范
该规范定义了接口开发中,各个流程之中
协议
客户端在通过 API 与后端服务通信的过程中,应该 使用 HTTPS 协议
域名
API 应该部署在专用域名之下,应尽可能保持足够简单。如果确定 API 很简单,不会有进一步扩展,可以考虑放在主域名下,这里有两个常见的 URL 根例子:
- api.example.com/* 单独一个子域名用来访问接口
- example.com/api/* 主域名之下单独一个空间
版本(Versioning)
所有的 API 必须保持向后兼容,你 必须 在引入新版本 API 的同时确保旧版本 API 仍然可用。所以 应该 为其提供版本支持
地址(path) 路由(router)
API 的具体网址
- URL 的命名 必须 全部小写
- URL 中资源(resource)的命名 必须 是名词,并且 必须 是复数形式
- 必须 优先使用 Restful 类型的 URL
- URL 必须 是易读的
- URL 一定不可 暴露服务器架构
至于 URL 是否必须使用连字符(-) 或下划线(_),不做硬性规定,但 必须 根据团队情况统一一种风格
- https://api.example.com/zoos
- https://api.example.com/animals
- https://api.example.com/zoos/{zoo}/animals
- https://api.example.com/animal_types
- https://api.example.com/employees
动词(请求方法 method)
对于资源的具体操作类型,由 HTTP 动词表示。常用的 HTTP 动词有下面五个(括号里是对应的 SQL 命令)。
- GET(SELECT):从服务器取出资源(一项或多项)。
- POST(CREATE):在服务器新建一个资源。
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)全更新。
- PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)部分更新。
- DELETE(DELETE):从服务器删除资源。
url参数
所有 URL 参数 必须 是全小写,必须 使用下划线类型的参数形式
分页参数 必须 固定为 page、page_size
响应(Response)
必须 选择合适的 HTTP 状态码。
必须 返回 JSON 格式数据。
所有错误必须统一错误格式。
常见的状态码
- 1xx 代表请求已被接受,需要继续处理 api中一般不出现
- 2xx 请求已成功,请求所希望的响应头或数据体将随此响应返回
- 200 服务器成功返回用户请求的数据
- 201 用户新建或修改数据成功
- 202 表示一个请求已经进入后台排队(成功了没有返回值,是一个异步)
- 204 删除成功
- 3xx 重定向
- 4xx 客户端原因引起的错误
- 404 请求的接口不存在,错误类型(请求地址错了)
- 401 用户未登录
- 403 用户登录了,但是没有权限访问
- 422 客户端参数错误,验证错误
- 429 超出请求限制
- 5xx 服务端原因引起的错误
- 500 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理,服务端代码报错
- 503 服务器维护之中
- 504 超时调用
错误格式
'message' => ':message', // 错误的具体描述
'errors' => ':errors', // 参数的具体错误描述,422 等状态提供
'code' => ':code', // 业务自定义的异常码
'status_code' => ':status_code', // http状态码
'debug' => ':debug', // debug 信息,非生产环境提供
什么是报文?
HTTP报文时是HTTP进行请求和响应时用来交换信息的。报文是由客户端流入服务器的
报文分为两类:请求报文,响应报文
请求和响应报文的基本报文结构相同,都是由三部分组成:
- 起始行:对报文进行描述
- 首部:一些属性
- 主体:数据【可选】
axios
兼容浏览器和node服务器
从浏览器中创建 XMLHttpRequests
从 node.js 创建 http 请求
支持 Promise API
支持拦截请求和响应
转换请求数据和响应数据
取消请求
自动转换 JSON 数据
客户端支持防御 XSRF
加油,陌生人! (来来往往不陌生,希望对您有所帮助)
以上就是这些核心知识点,前后端沟通必须掌握!的详细内容,转载自php中文网
发表评论 取消回复