# 前后端數據通訊接口規范
> 為了保證前后端數據交接更加便捷,減少不必要的溝通.前端后通訊依照以下規范執行.
前端根據請求狀態統一處理錯誤
## 后端返回數據
### 格式統一
這里指的是`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+