446 lines
6.8 KiB
Markdown
446 lines
6.8 KiB
Markdown
前端调整清单如下,核心是:**下游不再用 `inParameterList` / `formParameterList`,改为按 ContentType 拆分 Body、Query、Header。**
|
||
|
||
## 1. 接口详情页字段调整
|
||
|
||
### 删除/停用
|
||
|
||
- 下游接口不要再使用 `inParameterList`
|
||
- 不再使用 `formParameterList`
|
||
- 删除接口级“固定配置”Tab
|
||
- 下游表单中不再使用 `$FromBody`
|
||
|
||
### 新增字段
|
||
|
||
`SaveInterface` / `GetInterfaceById` 使用这些字段:
|
||
|
||
```ts
|
||
queryFormParameterList: FormParameterInput[]
|
||
headerFormParameterList: FormParameterInput[]
|
||
bodyFormParameterList: FormParameterInput[]
|
||
|
||
requestBodyParameterList: ParameterInput[]
|
||
mappingBodyParameterList: ParameterInput[]
|
||
|
||
inParameterList: ParameterInput[]
|
||
outParameterList: ParameterInput[]
|
||
```
|
||
|
||
---
|
||
|
||
## 2. 按 ContentType 显示 Tab
|
||
|
||
### Json / Xml 下游
|
||
|
||
显示:
|
||
|
||
- Query:KV
|
||
- Header:KV
|
||
- Body:参数树
|
||
- Response:参数树
|
||
- cURL:原样保留
|
||
|
||
隐藏:
|
||
|
||
- Mapping Body
|
||
- Body Form KV
|
||
- 上游 `inParameterList`
|
||
|
||
保存时传:
|
||
|
||
```ts
|
||
queryFormParameterList
|
||
headerFormParameterList
|
||
requestBodyParameterList
|
||
outParameterList
|
||
```
|
||
|
||
不要传:
|
||
|
||
```ts
|
||
inParameterList
|
||
bodyFormParameterList
|
||
mappingBodyParameterList
|
||
```
|
||
|
||
---
|
||
|
||
### FormUrlEncoded 下游
|
||
|
||
显示:
|
||
|
||
- Query:KV
|
||
- Header:KV
|
||
- Body:KV 表
|
||
- Mapping Body:参数树
|
||
- Response:参数树
|
||
- cURL:原样保留
|
||
|
||
保存时传:
|
||
|
||
```ts
|
||
queryFormParameterList
|
||
headerFormParameterList
|
||
bodyFormParameterList
|
||
mappingBodyParameterList
|
||
outParameterList
|
||
```
|
||
|
||
不要传:
|
||
|
||
```ts
|
||
inParameterList
|
||
requestBodyParameterList
|
||
```
|
||
|
||
---
|
||
|
||
### 上游接口
|
||
|
||
显示:
|
||
|
||
- In Parameters:参数树
|
||
- Response:参数树
|
||
|
||
保存时传:
|
||
|
||
```ts
|
||
inParameterList
|
||
outParameterList
|
||
```
|
||
|
||
不要传:
|
||
|
||
```ts
|
||
requestBodyParameterList
|
||
mappingBodyParameterList
|
||
bodyFormParameterList
|
||
```
|
||
|
||
`queryFormParameterList`、`headerFormParameterList` 可以传空数组。
|
||
|
||
---
|
||
|
||
## 3. FormParameterInput 调整
|
||
|
||
新增字段:
|
||
|
||
```ts
|
||
fieldPosition: 1 | 2 | 3
|
||
```
|
||
|
||
含义:
|
||
|
||
```ts
|
||
1 = Header
|
||
2 = Body
|
||
3 = Query
|
||
```
|
||
|
||
结构:
|
||
|
||
```ts
|
||
interface FormParameterInput {
|
||
optionType: number
|
||
id: number
|
||
name: string
|
||
value: string
|
||
description?: string
|
||
fieldPosition: 1 | 2 | 3
|
||
}
|
||
```
|
||
|
||
前端保存前要自动补:
|
||
|
||
- `queryFormParameterList[*].fieldPosition = 3`
|
||
- `headerFormParameterList[*].fieldPosition = 1`
|
||
- `bodyFormParameterList[*].fieldPosition = 2`
|
||
|
||
---
|
||
|
||
## 4. ParameterInput 调整
|
||
|
||
新增字段:
|
||
|
||
```ts
|
||
paraKind: 0 | 1
|
||
```
|
||
|
||
含义:
|
||
|
||
```ts
|
||
0 = Normal
|
||
1 = MappingBody
|
||
```
|
||
|
||
结构:
|
||
|
||
```ts
|
||
interface ParameterInput {
|
||
optionType: number
|
||
id: number
|
||
pId: number
|
||
name: string
|
||
alias?: string
|
||
cnName?: string
|
||
type: number
|
||
isRequired: boolean
|
||
sort?: string
|
||
description?: string
|
||
paraKind: 0 | 1
|
||
}
|
||
```
|
||
|
||
前端保存前要自动补:
|
||
|
||
- 上游 `inParameterList[*].paraKind = 0`
|
||
- 下游 Json/Xml `requestBodyParameterList[*].paraKind = 0`
|
||
- 下游 FormUrlEncoded `mappingBodyParameterList[*].paraKind = 1`
|
||
- `outParameterList[*].paraKind = 0`
|
||
|
||
---
|
||
|
||
## 5. 占位符调整
|
||
|
||
新增:
|
||
|
||
```ts
|
||
$FromMappingBody
|
||
```
|
||
|
||
用于:
|
||
|
||
- FormUrlEncoded 的 `bodyFormParameterList`
|
||
- 必要时 Query/Header KV 引用映射结果
|
||
|
||
删除/停用:
|
||
|
||
```ts
|
||
$FromBody
|
||
```
|
||
|
||
FormUrlEncoded 示例:
|
||
|
||
```json
|
||
{
|
||
"name": "notifyBizEventDTO",
|
||
"value": "$FromMappingBody",
|
||
"fieldPosition": 2
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 6. SaveInterface 请求组装
|
||
|
||
### Json 下游示例
|
||
|
||
```json
|
||
{
|
||
"optionType": 1,
|
||
"isUpStream": false,
|
||
"serviceProviderId": 5,
|
||
"name": "创建订单",
|
||
"requestAddress": "https://api.example.com/order",
|
||
"requestProtocol": 2,
|
||
"requestMethod": 2,
|
||
"contentType": 3,
|
||
|
||
"queryFormParameterList": [
|
||
{
|
||
"optionType": 1,
|
||
"id": 0,
|
||
"name": "access_token",
|
||
"value": "$FromAccount",
|
||
"fieldPosition": 3
|
||
}
|
||
],
|
||
"headerFormParameterList": [],
|
||
"requestBodyParameterList": [
|
||
{
|
||
"optionType": 1,
|
||
"id": 1,
|
||
"pId": 0,
|
||
"name": "orderId",
|
||
"alias": "orderId",
|
||
"type": 1,
|
||
"isRequired": true,
|
||
"paraKind": 0
|
||
}
|
||
],
|
||
"outParameterList": [],
|
||
|
||
"inParameterList": [],
|
||
"bodyFormParameterList": [],
|
||
"mappingBodyParameterList": []
|
||
}
|
||
```
|
||
|
||
### FormUrlEncoded 下游示例
|
||
|
||
```json
|
||
{
|
||
"optionType": 1,
|
||
"isUpStream": false,
|
||
"serviceProviderId": 5,
|
||
"name": "1688回调",
|
||
"requestAddress": "https://gw.open.1688.com/openapi/http",
|
||
"requestProtocol": 2,
|
||
"requestMethod": 2,
|
||
"contentType": 1,
|
||
|
||
"queryFormParameterList": [
|
||
{
|
||
"optionType": 1,
|
||
"id": 0,
|
||
"name": "_aop_timestamp",
|
||
"value": "$TimeStamp",
|
||
"description": "ms",
|
||
"fieldPosition": 3
|
||
}
|
||
],
|
||
"headerFormParameterList": [],
|
||
"bodyFormParameterList": [
|
||
{
|
||
"optionType": 1,
|
||
"id": 0,
|
||
"name": "notifyBizEventDTO",
|
||
"value": "$FromMappingBody",
|
||
"fieldPosition": 2
|
||
}
|
||
],
|
||
"mappingBodyParameterList": [
|
||
{
|
||
"optionType": 1,
|
||
"id": 1,
|
||
"pId": 0,
|
||
"name": "order",
|
||
"alias": "order",
|
||
"type": 3,
|
||
"isRequired": true,
|
||
"paraKind": 1
|
||
}
|
||
],
|
||
"outParameterList": [],
|
||
|
||
"inParameterList": [],
|
||
"requestBodyParameterList": []
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 7. GetInterfaceById 回填规则
|
||
|
||
后端现在会返回:
|
||
|
||
```ts
|
||
queryFormParameterList
|
||
headerFormParameterList
|
||
bodyFormParameterList
|
||
requestBodyParameterList
|
||
mappingBodyParameterList
|
||
inParameterList
|
||
outParameterList
|
||
```
|
||
|
||
前端回填时:
|
||
|
||
- Json/Xml:Body Tab 绑定 `requestBodyParameterList`
|
||
- FormUrlEncoded:Body Tab 绑定 `bodyFormParameterList`
|
||
- FormUrlEncoded:Mapping Body Tab 绑定 `mappingBodyParameterList`
|
||
- 上游:入参树绑定 `inParameterList`
|
||
- Response:绑定 `outParameterList`
|
||
- Query:绑定 `queryFormParameterList`
|
||
- Header:绑定 `headerFormParameterList`
|
||
|
||
---
|
||
|
||
## 8. 映射页面调整
|
||
|
||
下游映射目标参数来源改为:
|
||
|
||
```ts
|
||
if (downstream.contentType === 1) {
|
||
// FormUrlEncoded
|
||
targetTree = mappingBodyParameterList
|
||
} else if (downstream.contentType === 3 || downstream.contentType === 4) {
|
||
// Json / Xml
|
||
targetTree = requestBodyParameterList
|
||
}
|
||
```
|
||
|
||
不要再用下游 `inParameterList`。
|
||
|
||
---
|
||
|
||
## 9. 前端校验规则
|
||
|
||
保存前校验:
|
||
|
||
### 上游
|
||
|
||
必须:
|
||
|
||
```ts
|
||
inParameterList
|
||
```
|
||
|
||
禁止有值:
|
||
|
||
```ts
|
||
requestBodyParameterList
|
||
mappingBodyParameterList
|
||
bodyFormParameterList
|
||
```
|
||
|
||
### 下游 Json / Xml
|
||
|
||
必须:
|
||
|
||
```ts
|
||
requestBodyParameterList
|
||
```
|
||
|
||
禁止有值:
|
||
|
||
```ts
|
||
inParameterList
|
||
mappingBodyParameterList
|
||
bodyFormParameterList
|
||
```
|
||
|
||
### 下游 FormUrlEncoded
|
||
|
||
必须:
|
||
|
||
```ts
|
||
bodyFormParameterList
|
||
mappingBodyParameterList
|
||
```
|
||
|
||
禁止有值:
|
||
|
||
```ts
|
||
inParameterList
|
||
requestBodyParameterList
|
||
```
|
||
|
||
---
|
||
|
||
## 10. 页面文案建议
|
||
|
||
- `Query`:请求 Query 参数
|
||
- `Header`:请求 Header 参数
|
||
- `Body`:
|
||
- Json/Xml:请求体结构
|
||
- FormUrlEncoded:表单字段
|
||
- `Mapping Body`:业务 JSON 映射体
|
||
- `Response`:响应结构
|
||
|
||
`$FromMappingBody` 显示文案:
|
||
|
||
```text
|
||
引用 Mapping Body 映射结果
|
||
```
|
||
|
||
`$FromBody` 从下拉选项中移除。 |