From 8b92422f48e17dce0ffbd96f4b1af3aeb7c00d5f Mon Sep 17 00:00:00 2001 From: RickCole21 Date: Tue, 18 Aug 2020 10:57:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D=E5=99=A8=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/types/api.md | 60 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/docs/types/api.md b/docs/types/api.md index 14e0ec95..90ef746b 100755 --- a/docs/types/api.md +++ b/docs/types/api.md @@ -413,11 +413,31 @@ API 还支持配置对象类型 amis 的 API 配置,如果无法配置出你想要的请求结构,那么可以配置`requestAdaptor`发送适配器 -**发送适配器**是指在接口请求前,对请求进行一些自定义处理,例如修改发送数据体、添加请求头、等等,基本用法是,获取暴露的`api`参数,并且对该参数进行一些修改,并`return`出去: +**发送适配器** 是指在接口请求前,对请求进行一些自定义处理,例如修改发送数据体、添加请求头、等等,基本用法是,获取暴露的`api`参数,并且对该参数进行一些修改,并`return`出去: -#### 字符串形式 +##### 暴露的参数 -如果在 JSON 文件中配置的话,`requestAdaptor`只支持字符串形式,如下: +发送适配器暴露以下参数以供用户进行操作: + +- **api**:当前请求的 api 对象,一般包含下面几个属性: + - url:当前接口 Api 地址 + - method:当前请求的方式 + - data:请求的数据体 + - headers:请求的头部信息 + +##### 字符串形式 + +如果在 JSON 文件中配置的话,`requestAdaptor`只支持字符串形式。 + +字符串形式实际上可以认为是外层包裹了一层函数,你需要补充内部的函数实现,并将修改好的 `api` 对象 `return` 出去: + +```js +function (api) { + // 你的适配器代码 +} +``` + +用法示例: ```schema:height="330" scope="body" { @@ -454,7 +474,7 @@ return { }; ``` -#### 函数形式 +##### 函数形式 如果你的使用环境为 js 文件,则可以直接传入函数,如下: @@ -491,26 +511,36 @@ const schema = { 上面例子中,我们获取暴露的`api`对象中的`data`变量,并且为其添加了一个新的字段`foo`,并且一起返回出去就可以了,这样我们的请求数据体中就会加上我们这个新的字段。 -`api`变量中一般会包含下面几个属性: - -- **url**:当前接口 Api 地址 -- **method**:当前请求的方式 -- **data**:请求的数据体 -- **headers**:请求的头部信息 - 你也可以使用`debugger`自行进行调试。 ### 配置接收适配器 同样的,如果后端返回的响应结构不符合 amis 的[接口格式要求](#%E6%8E%A5%E5%8F%A3%E8%BF%94%E5%9B%9E%E6%A0%BC%E5%BC%8F-%E9%87%8D%E8%A6%81-),而后端不方便调整时,可以配置`adaptor`实现接收适配器 -**接受欧适配器**是指在接口请求后,对响应进行一些自定义处理,例如修改响应的数据结构、修改响应的数据等等。 +**接收适配器** 是指在接口请求后,对响应进行一些自定义处理,例如修改响应的数据结构、修改响应的数据等等。 例如:接口正确返回的格式中,会返回`"code": 200`,而 amis 中,接口返回格式需要`"status": 0`,这时候就需要接收适配器进行调整结构。 -#### 字符串形式 +##### 暴露的参数 -如果在 JSON 文件中配置的话,`adaptor`只支持字符串形式,如下: +接收适配器器暴露以下参数以供用户进行操作: + +- **payload**:当前请求的响应 payload,即 response.data +- **response**:当前请求的原始响应 + +##### 字符串形式 + +如果在 JSON 文件中配置的话,`adaptor`只支持字符串形式。 + +字符串形式实际上可以认为是外层包裹了一层函数,你需要补充内部的函数实现,并将修改好的 `payload` 对象 `return` 出去: + +```js +function (payload, responsee) { + // 你的适配器代码 +} +``` + +用法示例: ```json { @@ -545,7 +575,7 @@ return { }; ``` -#### 函数形式 +##### 函数形式 如果你的使用环境为 js 文件,则可以直接传入函数,如下: