api 返回格式兼容没有 status 和 data 的情况,在更多场景下无需适配 (#1054)

* api 返回格式兼容没有 status 和 data 的情况,在更多场景下无需适配

* 补充 api 兼容模式的文档
This commit is contained in:
吴多益 2020-11-12 10:03:18 +08:00 committed by GitHub
parent b9a81c37ac
commit 99e914197b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 350 deletions

View File

@ -77,18 +77,21 @@ API 类型用于配置请求接口的格式,涉及请求方式、请求地址
} }
``` ```
### 不推荐的格式 ### 兼容格式
部分组件为了可以兼容,支持下面这种直接返回数组的用法,但并不推荐这种方式。 > 1.0.19 及以上版本。
为了支持多种后端amis 支持直接返回数据的方式,无需返回 status 和将数据放在 data 字段中,比如下面的例子:
```json ```json
{ {
"status": 0, "username": "amis",
"msg": "", "email": "amis@amis.com"
"data": ["a", "b"] // 不推荐,使用 key 包装
} }
``` ```
但这种方式无法显示错误信息,只能通过返回 http 状态码来标识错误。
## 复杂配置 ## 复杂配置
API 还支持配置对象类型 API 还支持配置对象类型

View File

@ -1,340 +0,0 @@
{
"status": 0,
"result": null,
"msg": null,
"data": {
"count": 5,
"pageNo": 1,
"pageSize": 10,
"orderBy": null,
"order": null,
"rows": [
{
"userId": 630152,
"planId": 0,
"unitId": 2201543308,
"creativeId": 187,
"ideaId": 0,
"title": "闪投创意_橱窗测试",
"brand": "橱窗样式品牌",
"url": "http://www.tuiguang.com",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/65e55b02f73ea07b4079e247a2ffd05b.jpg",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/164c83612b9837f9f565cd80a0d6245e.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/4258ea37ba97236ff661be0a09ceea02.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/d6362946b69a71340595e56d8527a31a.jpg"
}
],
"signature": "b4299ee3ed76b2f439d7e29dfc5cf6ab",
"auditResult": "",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 20:39:19"
},
{
"userId": 630152,
"planId": 0,
"unitId": 2201543308,
"creativeId": 187,
"ideaId": 54009256299,
"title": "闪投创意_橱窗测试",
"brand": "橱窗样式品牌",
"url": "http://www.tuiguang.com1297102669",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/65e55b02f73ea07b4079e247a2ffd05b.jpg",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/164c83612b9837f9f565cd80a0d6245e.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/4258ea37ba97236ff661be0a09ceea02.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/d6362946b69a71340595e56d8527a31a.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
}
],
"signature": "801bb193d8ed2d44aa8d672d30d0b2a1",
"auditResult": "",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 20:42:22"
},
{
"userId": 630152,
"planId": 0,
"unitId": 2201545776,
"creativeId": 187,
"ideaId": 0,
"title": "闪投创意_橱窗测试",
"brand": "橱窗样式品牌",
"url": "http://www.tuiguang.com",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/65e55b02f73ea07b4079e247a2ffd05b.jpg",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/164c83612b9837f9f565cd80a0d6245e.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/4258ea37ba97236ff661be0a09ceea02.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/d6362946b69a71340595e56d8527a31a.jpg"
}
],
"signature": "b4299ee3ed76b2f439d7e29dfc5cf6ab",
"auditResult": "0",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 20:39:19"
},
{
"userId": 630152,
"planId": 0,
"unitId": 2201545776,
"creativeId": 187,
"ideaId": 54009256074,
"title": "橱窗样式",
"brand": "橱窗品牌",
"url": "http://www.ronhe.comww",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/e1228057dc685dcd90d2be52e7160e11.jpg",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/d6362946b69a71340595e56d8527a31a.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/164c83612b9837f9f565cd80a0d6245e.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/4258ea37ba97236ff661be0a09ceea02.jpg"
}
],
"signature": "5803a7eba7cbe6ba111e310549f0204d",
"auditResult": "",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 19:53:11"
},
{
"userId": 630152,
"planId": 0,
"unitId": 2201545776,
"creativeId": 171,
"ideaId": 54009255238,
"title": "闪投创意_测试aa",
"brand": "闪投测试ff",
"url": "http://www.baidu.com",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/e2a076e03f1624997b27eb5f0f8d69ff.jpgdd",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
}
],
"signature": "10a208706d1c1bf4716d85e4e1ae5447",
"auditResult": "",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 19:55:45"
}
]
},
"warning": null,
"debug": {
"request": {
"url": "http://prim2.jpaas-off00.baidu.com/audit/feed/idealist",
"params": {
"_url": "http://prim2.jpaas-off00.baidu.com/audit/feed/idealist"
},
"data": {
"userId": "630152",
"pageSize": "10",
"pageNo": "1",
"page": 1,
"perPage": 10
},
"headers": {
"AMIS_GROUP_KEY": "prim",
"AMIS_ROLES": "",
"AMIS_PERMS": "__is_uuap_user",
"AMIS_USER_IP": "10.91.140.154",
"AMIS_USER_TYPE": 0,
"AMIS_USER": "liaoxuezhi",
"AMIS_IS_OWNER": "true",
"Cookie": "BIDUPSID=6010BA9C9E557FE4093A55F26B853D8A; PSTM=1519639480; MCITY=-131%3A; BDSFRCVID=cJFsJeC624fG1XrAc_DStBWfyWJwDL5TH6aoiDZK23UeK7yc6biqEG0PDM8g0KubLgH7ogKK0mOTHvbP; H_BDCLCKID_SF=JbujoI_MtKv2jJjvq4bMK4FQqxby26nHKHReaJ5nJDoSSR6jDM6N0RtRQGJNbP6yJJn3XRT_QpP-HJ7R-qbsjh_vXU-tJ6jLQ6rUKl0MLpbtbb0xyn_VynF10MnMBMPeteOnaILaLIFbMD-Gj50WenIJqxQ0btjXKto2WbCQWIJrqpcNLTDKefIFWqQ23ljeyI0fbtJ8abCh8MoJ5lO1j4_eXJKtK-vX3Tr-WMJkb4QUoh5jDh3M25ksD-Rte4kqaa5y0hvctKocShPCjq00DjO3ea-JtTFs-DTbB4oHK--_qnTz-4L_5-_e-xQyetJyaR3T_lRbWJ5TMCoGQR6ZMTKF0lbvhjbN-IoyWlvlbxDbShPC-tnhKn0jyP59L6ch2eTiWfO73l02VhcIe-t2ynQDQlovW4RMW20eoq7mWILhVKFRjTA2DjJBepJf-K6QbDjKWRD8Kb7Vbn5lLnbkbfJBDxr7aM6DWe6NQKJDJMo2DR7J-jraXPD7yajK2-7WHCuHaq58MCbfhxcOKMrpQT8rKqAOK5Oib4jZo-5hab3vOI84XpO1j6LreGtttTLJtn-sXJP8KRTKHRrPq4bohjPjXpoeBtQmJJu8aqjw-RONV48R36JCK-CehHorQfJqQg-q3R7zLD5JjbreK4oo0MC054Ov0x-jLTnOVn0MW-KVjKQvWtnJyUnyD4nnBTKtLnLDVCDaJD0-MDvGh4rohCuShMr2aK6B5Po2WbCQWDOMqpcNLTDKjl_HLPPf3RItBNOJ5f3DMCoBOUbk5lO1j4_eybngXPQ7-DjLbbuh2nnIhp5jDh3tXjksD-Rt5tQD0Cjy0hvctn6cShnC-l00D6j-jaKDtjKsb5vfsJQ-24OoHRjP2DTjhPrM-P6lbMT-0bFH_nQTtxnKEJO3QhbMLl-E2JJZ-M3rJGn7_JjO2lbAOI_R3tovjnFSjx50bxQxtNRR2CnjtpvhHlRTy5JobUPUDMc9LUvqKH4E3-oJqCKBbKt93f; BAIDUID=5B2BBA9D53B86EE8ECE6F4A51151026A:FG=1; Hm_lvt_1f80f2c9dbe21dc3af239cf9eee90f1f=1525227445; Hm_lvt_0b20b782e46454330553f136ffb8c303=1525658669; Hm_lpvt_0b20b782e46454330553f136ffb8c303=1525661732; BDUSS=FnZHhkam9mcW15c2NPNEhxRWlzNEQ0cWRXS1ByZEd5NzlWdmx0ZTFiV2d-aUZiQUFBQUFBJCQAAAAAAAAAAAEAAAAQl~oAbGlhb3h1ZXpoaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBx-lqgcfpaV1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; SIGNIN_UC=70a2711cf1d3d9b1a82d2f87d633bd8a02764772933; H_PS_PSSID=1420_26458_21118_18559_22159; BAIDU_WISE_UID=wapp_1526524424557_688; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; PSINO=2; amisid=s%3Am2bXcd_ZZ0HGuOlFzFQIO-7MXYpTyplI.rnSQoUh4LG0n22lZWJM0dEdfFi1AOCly8JeLn4gPaW0; amis_env=2; Hm_lpvt_1f80f2c9dbe21dc3af239cf9eee90f1f=1526544494",
"Content-Type": "application/json",
"Content-Length": 70
},
"method": "post"
},
"response": {
"status": 0,
"result": null,
"msg": null,
"data": {
"count": 5,
"pageNo": 1,
"pageSize": 10,
"orderBy": null,
"order": null,
"rows": [
{
"userId": 630152,
"planId": 0,
"unitId": 2201543308,
"creativeId": 187,
"ideaId": 0,
"title": "闪投创意_橱窗测试",
"brand": "橱窗样式品牌",
"url": "http://www.tuiguang.com",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/65e55b02f73ea07b4079e247a2ffd05b.jpg",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/164c83612b9837f9f565cd80a0d6245e.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/4258ea37ba97236ff661be0a09ceea02.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/d6362946b69a71340595e56d8527a31a.jpg"
}
],
"signature": "b4299ee3ed76b2f439d7e29dfc5cf6ab",
"auditResult": "",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 20:39:19"
},
{
"userId": 630152,
"planId": 0,
"unitId": 2201543308,
"creativeId": 187,
"ideaId": 54009256299,
"title": "闪投创意_橱窗测试",
"brand": "橱窗样式品牌",
"url": "http://www.tuiguang.com1297102669",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/65e55b02f73ea07b4079e247a2ffd05b.jpg",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/164c83612b9837f9f565cd80a0d6245e.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/4258ea37ba97236ff661be0a09ceea02.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/d6362946b69a71340595e56d8527a31a.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
}
],
"signature": "801bb193d8ed2d44aa8d672d30d0b2a1",
"auditResult": "",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 20:42:22"
},
{
"userId": 630152,
"planId": 0,
"unitId": 2201545776,
"creativeId": 187,
"ideaId": 0,
"title": "闪投创意_橱窗测试",
"brand": "橱窗样式品牌",
"url": "http://www.tuiguang.com",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/65e55b02f73ea07b4079e247a2ffd05b.jpg",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/164c83612b9837f9f565cd80a0d6245e.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/4258ea37ba97236ff661be0a09ceea02.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/d6362946b69a71340595e56d8527a31a.jpg"
}
],
"signature": "b4299ee3ed76b2f439d7e29dfc5cf6ab",
"auditResult": "0",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 20:39:19"
},
{
"userId": 630152,
"planId": 0,
"unitId": 2201545776,
"creativeId": 187,
"ideaId": 54009256074,
"title": "橱窗样式",
"brand": "橱窗品牌",
"url": "http://www.ronhe.comww",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/e1228057dc685dcd90d2be52e7160e11.jpg",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/d6362946b69a71340595e56d8527a31a.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/164c83612b9837f9f565cd80a0d6245e.jpg"
},
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/4258ea37ba97236ff661be0a09ceea02.jpg"
}
],
"signature": "5803a7eba7cbe6ba111e310549f0204d",
"auditResult": "",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 19:53:11"
},
{
"userId": 630152,
"planId": 0,
"unitId": 2201545776,
"creativeId": 171,
"ideaId": 54009255238,
"title": "闪投创意_测试aa",
"brand": "闪投测试ff",
"url": "http://www.baidu.com",
"userPortrait": "http://fc-feed.cdn.bcebos.com/0/pic/e2a076e03f1624997b27eb5f0f8d69ff.jpgdd",
"pictures": [
{
"pic": "http://bj.bcebos.com/fc-feed/0/pic/62c40ba3e297ea57c5b80f41e958b4f2.jpg"
}
],
"signature": "10a208706d1c1bf4716d85e4e1ae5447",
"auditResult": "",
"status": 1,
"type": "DPA",
"lastModifiedTime": "2018-05-16 19:55:45"
}
]
},
"warning": null
}
}
}

View File

@ -89,7 +89,6 @@ export interface Action extends Button {
| 'delete' | 'delete'
| 'edit' | 'edit'
| 'cancel' | 'cancel'
| 'close'
| 'next' | 'next'
| 'prev' | 'prev'
| 'reset'; | 'reset';

View File

@ -168,9 +168,8 @@ function responseAdaptor(ret: fetcherResult) {
if (!data) { if (!data) {
throw new Error('Response is empty!'); throw new Error('Response is empty!');
} else if (!data.hasOwnProperty('status')) { } else if (!data.hasOwnProperty('status')) {
throw new Error( // 兼容不返回 status 字段的情况
'接口返回格式不符合,请参考 http://amis.baidu.com/v2/docs/api' data.status = 0;
);
} }
const payload: Payload = { const payload: Payload = {
@ -178,7 +177,7 @@ function responseAdaptor(ret: fetcherResult) {
status: data.status, status: data.status,
msg: data.msg, msg: data.msg,
msgTimeout: data.msgTimeout, msgTimeout: data.msgTimeout,
data: data.data data: data.data ? data.data : data // 兼容直接返回数据的情况
}; };
if (payload.status == 422) { if (payload.status == 422) {