报文的类型是有很多种的,常用的有定长报文、键值报文、XML报文、JSON报文、二进制报文等,以下就对这几种报文做相应的介绍,并配简单的示例。 开发门户 > API管理 > 我的发布中,如下表格中的发布类型对应的转换类型为支持的可以配置报文转换规则,可以自定义发送业务服务的请求头、请求报文和业务服务返回客户端的响应头、响应报文。
发布类型 | 请求报文转换 | 响应报文转换 |
---|---|---|
HTTP穿透 | 支持 | 支持 |
WebService穿透 | 支持 | 支持 |
HTTP路由 | 不支持 | 不支持 |
WS转HTTP | 支持 | 支持 |
HTTP转WS | 支持 | 支持 |
SAP转HTTP | 不支持 | 不支持 |
SAP转WS | 不支持 | 不支持 |
JDBC转HTTP | 不支持 | 不支持 |
JMS转HTTP | 支持 | 不支持 |
JMS转WS | 支持 | 不支持 |
HTTP转JMS | 支持 | 不支持 |
JMS穿透 | 支持 | 不支持 |
GRPC转HTTP | 不支持 | 不支持 |
Dubbo转HTTP | 不支持 | 不支持 |
API编排 | 不支持 | 不支持 |
# 报文转换场景
说明:
- 如下的示例报文为JSON格式。
- 所有示例均使用
HTTP穿透
发布类型展示。
请求报文:
{"id":"33","name":"名称1","isbn":"isbn1","author":"作者1","price":45.32}
响应报文:
{
"id": "33",
"name": "名称1",
"address": "地址1",
"price": 45.32,
"book": {
"id": "1",
"name": "书籍1",
"chapters": {
"name": "第一章",
"description": "第一章描述"
}
},
"pics": [{
"id": "1",
"name": "图片1"
},{
"id": "2",
"name": "图片2"
}
]
}
# 场景1:请求报文和响应报文字段名称修改
请求报文转换规则:
转换类型 | 字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|---|
请求报文转换 | 报文体 | $.id | $.newId | 否 | |
响应报文转换 | 报文体 | $.name | $.newName | 否 | |
响应报文转换 | 报文体 | $.book.name | $.book.bName | 修改的书籍名称 | 否 |
响应报文转换 | 报文体 | $.pics[1].name | $.pics[1].pName | 否 |
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“接口名称”,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
# 场景2:请求报文和响应报文字段名称增加
转换类型 | 字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|---|
请求报文转换 | 报文体 | $.URL | www.baidu.com | 否 | |
响应报文转换 | 报文体 | $.desc | 描述信息 | 否 | |
响应报文转换 | 报文体 | $.book.time | 2024-01-01 | 否 | |
响应报文转换 | 报文体 | $.pics[0].title | 图片标题1 | 否 |
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“接口名称”,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
# 场景3:请求报文和响应报文字段名称删除
转换类型 | 字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|---|
请求报文转换 | 报文体 | $.author | 否 | ||
响应报文转换 | 报文体 | $.address | 否 | ||
响应报文转换 | 报文体 | $.book.name | 否 | ||
响应报文转换 | 报文体 | $.pics[1].id | 否 |
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击操作栏中的“编辑”按钮,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
# 场景4:请求报文和响应报文字段值修改
转换类型 | 字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|---|
请求报文转换 | 报文体 | $.author | 作者1-修改 | 否 | |
响应报文转换 | 报文体 | $.address | 地址1-修改 | 否 | |
响应报文转换 | 报文体 | $.book.name | 书籍1-修改 | 否 | |
响应报文转换 | 报文体 | $.pics[1].name | 图片2-修改 | 否 |
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击操作栏中的“编辑”按钮,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
# 场景5:使用报文体中的某个字段值作为源字段的值
转换类型 | 字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|---|
请求报文转换 | 报文体 | $.author | $.isbn | 是 | |
响应报文转换 | 报文体 | $.pics[1].name | $.pics[0].name | 是 |
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击操作栏中的“编辑”按钮,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
# 场景6:修改字段名,并使用变量值作为新字段的值
转换类型 | 字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|---|
请求报文转换 | 报文体 | $.author | $.newAuthor | $.isbn | 是 |
响应报文转换 | 报文体 | $.pics[0].name | $.pics[0].newName | $.pics[0].name | 是 |
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击操作栏中的“编辑”按钮,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
# 场景7:请求头中的字段使用请求体中的某个字段值作为值
转换类型 | 字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|---|
请求报文转换 | 报文头 | C-Key | C-Key-new | $.isbn | 是 |
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击操作栏中的“编辑”按钮,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
# 场景8:当新增的请求头已存在时,在原先的基础上新增一个value
转换类型 | 字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|---|
请求报文转换 | 报文头 | C-Key | abc | 否 |
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击操作栏中的“编辑”按钮,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
# 场景9:请求报文xml转json,响应报文json转xml
请求报文xml:
<?xml version="1.0" encoding="UTF-8" ?>
<request>
<id>33</id>
<name>名称1</name>
<isbn>isbn1</isbn>
<author>作者1</author>
<price>45.32</price>
</request>
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击操作栏中的“编辑”按钮,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
# 场景10:XML格式响应报文转换
请求报文示例
<?xml version="1.0" encoding="UTF-8" ?>
<book>
<id>33</id>
<name>名称1</name>
<isbn>isbn1</isbn>
<author>作者1</author>
<price>45.32</price>
</book>
响应报文示例
<?xml version="1.0" encoding="UTF-8" ?>
<book>
<id>33</id>
<name>名称1</name>
<address>地址1</address>
<price>45.32</price>
<detail>
<id>1</id>
<name>书籍1</name>
<chapters>
<name>第一章</name>
<description>第一章描述</description>
</chapters>
</detail>
</book>
请求报文转换配置实现【/book/id】字段修改为【/book/new_id】 响应报文转换配置实现【/books/address】的值赋给【/books/price】 响应报文转换配置如下:
转换类型 | 字段类型 | 字段名称 | 新字段名称 | 字段赋值 | Value是否是变量 |
---|---|---|---|---|---|
请求报文转换 | 报文体 | /book/id | /book/new_id | /book/id | 是 |
响应报文转换 | 报文体 | /books/address | /books/price | 是 |
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“接口名称”,即可查看到接口的详细信息。
在"开发门户 > API管理 > 我的发布"页面,选择自己的接口,点击“操作”中的“测试”按钮,即可进入测试页面。
在测试页面,在“请求Body”中填写请求报文,点击“测试”按钮,即可查看到转换后的响应报文。
如下图片展示了请求报文转换后的请求报文。
注意
源xml报文转换json格式方式如下:
1.用在线转换工具将xml格式转为json格式,在线转换工具可参考: https://www.bejson.com/xml2json/index.html
2.复制json格式报文并且修改报文中的【-】为【@】