[TOC]
# **1. 啟用注解**
`@GoEnableBody`
# **2. 狀態碼**
| 狀態碼 | 類型 |
| --- | --- |
| 0 | 成功 |
| -1 | 失敗 |
| -2 | 異常 |
| -3 | 重試 |
# **3. 數據格式**
## **3.1 成功**
```
{"code":0,"msg":"操作成功","success":true,"data":{}}
```
## **3.2 失敗**
```
{"code":-1,"msg":"操作失敗","success":false}
```
## **3.3 異常**
```
{"code":-2,"msg":"操作異常","success":false}
```
## **3.4 重試**
```
{"code":-3,"msg":"重試失敗","success":false}
```
# **4. 注意事項**
| 類別 | 類型 | 處理 |
| --- | --- | --- |
| Map | Java Map | 否× |
| Iterable | Java Iterable | 否× |
| String | Java String | 否× |
| Json | FastJson JSON| 否× |
| Result | FastBoot Result、PResult | 否× |
| Object | Java Object | 是? |
```
@RequestMapping("/xxx")
public Result getXXX() {
// 結果對象
// return R.succ();
// return R.succ(Object data)
// return R.succ(String msg)
// return R.succ(String msg, Object data)
// return R.succ(Integer code, String msg)
// return R.succ(Integer code, String msg, Object data)
// return R.fail();
// return .....
// return R.error();
// return .....
// 分頁對象
// return PR.create(Page<?> page)
// return PR.create(List<?> data)
// return PR.create(List<?> data,Integer total)
}
```
> 排除 Map、Iterable、String、FastJson 、Result 不會處理外,其他Object均會統一格式返回,方法上添加注解@IgnoreBody可忽略處理
# **5. 示例說明**
## **5.1 Result**
```
@RequestMapping(value = "result")
public Result result() {
return R.succ(MockData.map());
}
```
```
{
"code": 0,
"msg": "操作成功",
"data": {
"k1": "1",
"k2": 2,
"k3": "3",
"k4": 4.1,
"k5": 5.2,
"k6": true,
"k7": "7",
"k8": "2021-06-17 16:44:50"
},
"status": true
}
```
> 由于本身已是統一結果對象,所以默認不會再次處理
## **5.2 Map**
```
@RequestMapping(value = "map")
public Map<String, Object> map() {
return MockData.map();
}
```
```
{
"k1": "1",
"k2": 2,
"k3": "3",
"k4": 4.1,
"k5": 5.2,
"k6": true,
"k7": "7",
"k8": "2021-06-17 16:58:53"
}
```
## **5.3 Iterable**
```
@RequestMapping(value = "list")
public List<String> list() {
return MockData.list();
}
```
```
[
"k1",
"k2",
"k3",
"k4",
"k5",
"k6",
"k7",
"k8"
]
```
## **5.4 String**
```
@RequestMapping(value = "string")
public String string() {
return MockData.fastjson().toString();
}
```
```
{
"k1": "1",
"k2": 2,
"k3": "3",
"k4": 4.1,
"k5": 5.2,
"k6": true,
"k7": "7",
"k8": "2021-06-17 16:57:17",
"list": [
"k1",
"k2",
"k3",
"k4",
"k5",
"k6",
"k7",
"k8"
]
}
```
## **5.5 Json**
```
@RequestMapping(value = "fastjson")
public JSON json() {
return MockData.fastjson();
}
```
```
{
"k1": "1",
"k2": 2,
"k3": "3",
"k4": 4.1,
"k5": 5.2,
"k6": true,
"k7": "7",
"k8": "2021-06-17 16:57:17",
"list": [
"k1",
"k2",
"k3",
"k4",
"k5",
"k6",
"k7",
"k8"
]
}
```
## **5.6 Object**
### **5.6.1 統一處理**
```
@RequestMapping(value = "object")
public MockUser object() {
return MockData.user();
}
```
```
{
"code": 0,
"msg": "操作成功",
"data": {
"name": "段正淳",
"birthDay": "2021-06-17 17:02:19",
"registerDay": "2021-06-17 17:02:19",
"idCard": "51343620000320711X",
"phone": "09127518479",
"tel": "13800138000",
"address": "xx市xx區xxxx街道xxx號",
"email": "123456789@qq.com",
"password": "a5sw7b65",
"carnumber": "京A88888",
"status": "A",
"enable": false
},
"status": true
}
```
### **5.6.2 忽略處理**
```
@IgnoreBody
@RequestMapping(value = "ignore")
public MockUser ignore() {
return MockData.user();
}
```
```
{
"name": "段正淳",
"birthDay": "2021-06-17 17:09:35",
"registerDay": "2021-06-17 17:09:35",
"idCard": "51343620000320711X",
"phone": "09127518479",
"tel": "13800138000",
"address": "xx市xx區xxxx街道xxx號",
"email": "123456789@qq.com",
"password": "f27btyhx",
"carnumber": "京A88888",
"status": "A",
"enable": false
}
```
### **5.6.3 脫敏處理**
```
@RequestMapping("/desensitized")
public MockDesensitized desensitized() {
return MockData.user2();
}
```
```
{
"code": 0,
"msg": "操作成功",
"data": {
"name": "段**",
"birthDay": "2021-06-17 17:12:07",
"registerDay": "2021-06-17",
"idCard": "5***************1X",
"phone": "0912*****79",
"tel": "138****8000",
"address": "xx市xx區xx********",
"email": "1********@qq.com",
"password": "********",
"carnumber": "京A8***8",
"status": "A",
"enable": false
},
"status": true
}
```
> 數據脫敏,利用了FastJson的特性,具體見`數據轉換`章節