# 前后端数据通讯接口规范
> 为了保证前后端数据交接更加便捷,减少不必要的沟通.前端后通讯依照以下规范执行.
前端根据请求状态统一处理错误
## 后端返回数据
### 格式统一
这里指的是`content-type` 为 `application/json`
1.Thinkphp内置处理函数
```
return json($data); // 成功返回
return json($data,404|401) // 错误返回
```
通常情况下401在后台也是在构造函数统一处理的,但是构造函数无法使用return 所以可以使用以下方案
```
header("HTTP/1.1 401 Not Found"); // 如果是404 改成404即可
header("Status: 401 Not Found");
header('Content-type: application/json; charset=utf-8');
exit();
```
2 微擎 微擎没有内置助手函数,可以使用以下方法实现,也可以根据使用频率自己封装.
200返回
```
header('Content-Type: application/json');
echo json_encode($data);
```
404|401返回
```
http_response_code(404|401);
header('Content-Type: application/json');
echo json_encode($data);
```
### 状态码统一
状态码全部放在`返回头`里面也就是http请求的`status`
现制作以下状态规范,如有补充再添加.
| 状态 | 描述 |
| --- | --- |
| 200 | 成功 |
| 404 | 失败/错误/验证验权不通过 |
| 401 | 未登录访问 |
### 返回内容
请注意,不需要在body中返回status
#### 对于成功请求,返回请求后数据库的数据,比如用户注册
```
{
"username":"张三",
"age":"12",
...
}
```
比如列表
```
{
"page":"1",
"curent":"1",
"total":"30",
"data":[
{
"username":"张三",
"age":"12",
...
}
]
...
}
```
#### 对于更新,状态修改返回修改结果,比如点赞
```
{
"fav_result":1 // 这里面的1 表示 数据库修改的条目 比如 fav_result = Post->update($data);
}
```
#### 对于错误,返回404 并返回错误原因,必要时可以添加额外数据
```
{
"message":"用户名未填写",
"validate":{
"username":"用户名未填写"
}
}
```
类型:json
- 首页
- APP
- 调试
- 部分问题解答
- IM
- 魔工坊APP框架
- 前端
- npm
- MogoAjax
- ES6
- javascript规范
- weui
- 微信小程序
- Mock数据伪造
- Mogo-Css
- O2-Upload
- 七牛图片处理
- 前端调试
- 后端
- 魔工坊海豚PHP
- 文件上传
- O2-Comments
- 前端API
- 消息
- Excel导入/导出
- 阿里短信
- dolphinPHP
- Thinkphp
- 海豚PHP
- 创建项目
- 人人商城与海豚同步问题
- mysql
- 发送HTTP请求
- 支付
- 个推
- 接口开发须知
- 生成海报
- 音频转换
- openssl
- App上架的故事
- 安卓签名问题
- 苹果账号申请
- 各个平台上架内容
- 文案小姐姐的文档
- 微信支付申请流程
- 备案的故事
- 企业支付宝认证
- 微信公众问题
- 微信开放平台与上架应用
- 小程序特殊行业所需材料
- 模型文档模板
- 必读规范
- 跨域
- 前后端数据通讯接口规范
- Restful风格API规范
- 服务器
- SSL中间证书
- Git篇章
- MogoSDK
- 文档模板
- PHP
- 使用
- 概念
- User
- 模型
- 文档书写
- JS
- 安装
- 初始化
- 用户
- 状态管理
- 查询
- 执行函数
- 请求
- 上传
- MogoH5+