一、JSON数据类型介绍
JSON 中支持的数据类型可以分为简单数据类型和复杂数据类型两种,其中简单数据类型包括:string(字符串)、number(数字)、boolean(布尔值)和 null(空);复杂数据类型包括:Array(数组)和 Object(对象)
二、网络请求介绍
2.1、HTTP请求
HTTP是一种应用层协议,常用于Web应用中的数据传输。通过发送HTTP请求,可以使用GET、POST、PUT、DELETE等方法与服务器进行交互。
2.2、HTTPS请求
HTTPS是在HTTP基础上添加了SSL/TLS加密层的安全传输协议。通过HTTPS发送的请求可以提供更高的数据传输安全性。
2.3、gRPC请求
gRPC是一种高性能、开源的远程过程调用(RPC)框架。它使用Protocol Buffers作为接口定义语言,基于HTTP/2协议传输数据,支持多种编程语言。
2.4、WebService请求
Web服务是一种通过网络进行通信的软件系统,常用于不同平台和语言之间的集成。常见的Web服务协议包括SOAP和RESTful。SOAP使用XML格式进行数据交互,而RESTful使用HTTP协议,通常以JSON格式进行数据传输
2.5、FTP请求
FTP(File Transfer Protocol)是用于在网络上进行文件传输的协议。通过FTP请求,可以上传、下载和管理文件。
2.6、SSH请求
SSH(Secure Shell)是一种网络协议,用于在不安全的网络中安全地进行远程登录和文件传输。通过SSH请求,可以进行远程命令执行、文件传输和隧道代理等操作。
2.7、WebSocket请求
WebSocket是一种基于TCP协议的双向通信协议,允许客户端和服务器之间进行实时通信。通过WebSocket请求,可以实现实时推送和即时通信功能。
2.8、MQTT请求
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,常用于物联网设备间的通信。通过MQTT请求,可以实现设备之间的发布/订阅模式通信
2.9、OkHttp
一个开源的HTTP客户端库,提供了简洁的API和强大的功能,用于发送和接收HTTP请求。它支持同步、异步、WebSocket等不同类型的请求,同时还提供了连接池、缓存、拦截器等功能。
三、前后端api规范
3.1 接口路径以 /api 或 /[version]/api 开头
/api/task 或 /v2/api/tasks
注意:一个产品无论后端有多少个服务组成也应该只有一个 API 入口
3.2 接口路径以 api/aa-bb/cc-dd 方式命名
/api/task-groups
3.3 接口路径使用资源名词
而非动词,动作应由 HTTP Method 体现,资源组可以进行逻辑嵌套
POST /api/tasks 或 /api/task-groups/1/tasks 表示在 id 为 1 的任务组下创建任务
3.4 接口路径中的资源使用复数而非单数
/api/tasks
3.5 接口设计面向开放接口,而非单纯前端业务
要求我们在给结构路径命名时候面向通用业务的开放接口,而非单纯前端业务,以获取筛选表单中的任务字段下拉选项为例
/api/tasks
虽然这个接口暂时只用在表单的下拉选择中,但是需要考虑的是在未来可能会被用在任意场景,因此应以更通用方式提供接口交由客户端自由组合
3.6 规范使用 HTTP 方法
方法 场景 例如
GET 获取数据 获取单个:GET /api/tasks/1、获取列表:GET /api/tasks
POST 创建数据 创建单个:POST /api/tasks
PATCH 差量修改数据 修改单个:PATCH /api/tasks/1
PUT 全量修改数据 修改单个:PUT /api/tasks/1
DELETE 删除数据 删除单个:DELETE /api/tasks/1
其它更多请求方法请查阅 MDN Web Docs
3.7 规范使用 HTTP 状态码
状态码 场景
200 创建成功,通常用在同步操作时
202 创建成功,通常用在异步操作时,表示请求已接受,但是还没有处理完成
400 参数错误,通常用在表单参数错误
401 授权错误,通常用在 Token 缺失或失效,注意 401 会触发前端跳转到登录页
403 操作被拒绝,通常发生在权限不足时,注意此时务必带上详细错误信息
404 没有找到对象,通常发生在使用错误的 id 查询详情
500 服务器错误