什么是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中文网

点赞(54) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部