amis/docs/api.md

112 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 动态数据
---
除了渲染静态页面及表单amis 还能渲染动态数据,比如下面这个表格数据是来自 api 这个接口的请求
```json
{
"type": "crud",
"api": " http://xxx/api/sample",
"columns": [
{
"name": "engine",
"label": "引擎"
},
{
"name": "browser",
"label": "浏览器"
}
]
}
```
amis 期望这个 api 接口返回的是如下的格式:
```json
{
"status": 0,
"msg": "",
"data": {
"items": [
{
"engine": "Trident",
"browser": "IE 9"
},
{
"engine": "Gecko",
"browser": "Firefox 70"
}
]
}
}
```
下面是具体介绍
### 整体格式
要求每个接口都返回 `status` 字段用来表示成功还是失败,如果失败了,通过 `msg` 字段来说明失败原因。当然如果成功 `msg` 也可以用来设置提示信息。
```json
{
"status": 0, // 0 表示成功非0 表示失败
"msg": "", // 提示信息 包括失败和成功
"data": {
// ...
// 具体的数据
}
}
```
如果你的系统有自己的规范,可以在 fetcher 统一进行适配,如:
```js
{
renderAmis(
{
// 这里是 amis 的 Json 配置。
type: 'page',
title: '简单页面',
body: '内容'
},
{
// props
},
{
// 忽略别的设置项
fetcher: function (api) {
// 适配这种格式 {"code": 0, "message": "", "result": {}}
return axios(config).then(response => {
let payload = {
status: response.data.code,
msg: response.data.message,
data: response.data.result
};
return {
...response,
data: payload
};
});
}
}
);
}
```
### 具体要求
每个渲染的接口返回都有自己的格式要求,主要体现在 data 字段内部,具体请参考每个渲染的接口说明。
- [Page](./renderers/Page.md#接口说明)
- [CRUD](./renderers/CRUD.md#接口说明)
- [Form](./renderers/Form/Form.md#接口说明)
- [Select](./renderers/Form/Select.md#接口说明)
- [Checkboxes](./renderers/Form/Checkboxes.md#接口说明)
- [Radios](./renderers/Form/Radios.md#接口说明)
- [List](./renderers/Form/List.md#接口说明)
- [Wizard](./renderers/Wizard.md#接口说明)
`TBD`