教程:映射 JSON 内容
本教程向您说明如何将消息内容从一种格式或模式映射到另一种格式或模式。
准备工作
分配了以下角色之一的用户可以完成该任务:- 目录所有者
- 开发者
关于本教程
在本教程中,您将完成以下课程:创建新 API
执行以下步骤以创建新 API。
映射 JSON 内容
- 单击网关选项卡。
- 将光标悬停在策略上,然后单击删除图标
,即可删除画布上的现有策略。注: 如果使用 DataPower API Gateway ,则该策略为调用策略;如果使用 DataPower Gateway (v5 compatible) ,则该策略为代理策略。
- 要查看调色板,请在右面板中单击加号图标
。
- 在 " 变换 "栏下,选择地图。
地图策略节点显示在画布上。

- 单击地图策略节点打开配置对话框。
- 在 "输入 "旁边,单击 " 编辑输入 "图标。


- 单击添加输入。
- 输入以下值,完成地图输入配置
- 在上下文变量字段中,输入 request.body。
- 在名称字段中,输入input。
- 从内容类型下拉列表中,选择 application/json。
- 从定义下拉列表中,选择 Inline
schema。
弹出 " 提供模式 " 窗口。

- 在弹出的 " 提供模式 " 窗口中,执行以下任务。
- 选择 " 从样本 JSON 生成 "选项卡。
- 将以下样本 JSON 粘贴到框中。
{"order": {"customer": {"name": { "firstname":"John", "middlename":"Q", "lastname":"Smith" }, "address": { "line1":"550 King St", "line2":"Dept 5", "city":"Littleton", "state":"MA", "country":"USA", "code":"01460" } } }, "items": [{"item":"shoes", "color":"black", "qty":2, "price":23.50}, {"item":"socks", "color":"argyle", "qty":2, "price":3.95}, {"item":"pants", "color":"grey", "qty":1, "price":48.00}] } - 单击生成。

- 单击完成。
弹出窗口现已关闭。
- 在地图策略配置对话框中,单击完成完成地图配置。
- 在 " 输出 "栏旁边,单击 " 编辑输出 "图标
。
- 单击添加输出。
- 输入以下值,完成地图输出配置
- 在上下文变量字段中,输入 message.body。
- 在名称字段中,输入output。
- 从内容类型下拉列表中,选择 application/json。
- 从定义下拉列表中,选择 Inline
schema。
弹出 " 提供模式 " 窗口。

- 在弹出的 " 提供模式 " 窗口中,执行以下任务。
- 选择 " 从样本 JSON 生成 "选项卡。
- 将以下样本 JSON 粘贴到框中。
{"order": { "date":"12-12-12", "customer": "John Smith", "address": { "street":"king", "citystatezip":"lit MA 01469", "country":"USA" }, "items":[{"type":"shoes", "color":"black", "qty":2, "price":23.50}] } } - 单击生成。

- 单击完成。
弹出窗口现已关闭。
- 在地图策略配置对话框中,单击完成完成地图配置。

- 单击保存。
- 在地图输出配置窗口的 " 输出 "栏中,执行以下任务。
- 选择日期单选按钮。
配置映射对话框将显示。
- 在 " 配置映射 "对话框中,输入以下示例 JavaScript。
new Date().toGMTString() - 单击完成。

- 在 " 配置映射 "对话框中,输入以下示例 JavaScript。
- 在输入栏下选择名字单选按钮,然后在输出栏下选择客户单选按钮。
配置映射对话框将显示。
- 在配置映射对话框中,选择空字符串作为默认值复选框。
- 单击完成。
- 在 "输入 "栏下选择 " middlename "单选按钮,然后在 " 输出 "栏下选择 " 客户 "单选按钮。
配置映射对话框将显示。
- 在配置映射对话框中,选择空字符串作为默认值复选框。
- 单击完成。
- 在输入栏下选择姓氏单选按钮,然后在输出栏下选择客户单选按钮。
配置映射对话框将显示。
- 在配置映射对话框中,选择空字符串作为默认值复选框。
- 单击完成。

- 在 " 输出 "栏下,选择 " 客户 "单选按钮。
配置映射对话框将显示。
- 在 " 配置映射 "对话框的值字段中,输入以下示例代码。
var name = $(input.order.customer.name.firstname) + ' '; if($(input.order.customer.name.middlename)) { name += $(input.order.customer.name.middlename) + ' ';} name += $(input.order.customer.name.lastname); name - 单击完成。

- 在 " 配置映射 "对话框的值字段中,输入以下示例代码。
- 在输入栏下,选择 单选按钮,然后在输出栏下选择街道单选按钮。
配置映射对话框将显示。
- 在配置映射对话框中,选择空字符串作为默认值复选框。
- 单击完成。
- 在输入栏下,选择 单选按钮,然后在输出栏下选择街道单选按钮。
配置映射对话框将显示。
- 在配置映射对话框中,选择空字符串作为默认值复选框。
- 单击完成。

- 在 " 输出 "栏下,选择街道单选按钮。
配置映射对话框将显示。
- 在 " 配置映射 "对话框的值字段中,输入以下示例代码。
var street = $(input.order.customer.address.line1) + ' '; if($(input.order.customer.address.line2)) { street += $(input.order.customer.address.line2);} street - 单击完成。

- 在 " 配置映射 "对话框的值字段中,输入以下示例代码。
- 在输入栏下选择城市单选按钮,然后在输出栏下选择城市州邮编单选按钮。
配置映射对话框将显示。
- 在配置映射对话框中,选择空字符串作为默认值复选框。
- 单击完成。
- 在 "输入 "栏下选择 " 州 "单选按钮,然后在 " 输出 "栏下选择 " 城市州邮编 "单选按钮。
配置映射对话框将显示。
- 在配置映射对话框中,选择空字符串作为默认值复选框。
- 单击完成。
- 在输入栏下选择代码单选按钮,然后在输出栏下选择 citystatezip 单选按钮。
配置映射对话框将显示。
- 在配置映射对话框中,选择空字符串作为默认值复选框。
- 单击完成。

- 在 " 输出 "栏下,选择街道单选按钮。
配置映射对话框将显示。
- 在 " 配置映射 "对话框的值字段中,输入以下示例代码。
$(1) + " " + $(2) + " " + $(3)注意: 变量引用是位置性的;$(1) 指第一个映射值 (input.order.customer.city),以此类推。 - 单击完成。

- 在 " 配置映射 "对话框的值字段中,输入以下示例代码。
- 在输入栏下,选择单选按钮,然后在输出栏下,选择项目单选按钮。
配置映射对话框将显示。
- 在配置映射对话框中,选择空字符串作为默认值复选框。
- 单击完成。

- 在 " 输出 "栏下,单击第二个添加属性。

- 在第一个字段中,输入 total。
- 从下拉列表中选择 float。
- 点击 + 图标。

- 在输入栏下选择项目单选按钮,然后在输出栏下选择总数单选按钮。
配置映射对话框将显示。
- 在 " 配置映射 "对话框的值字段中,输入以下示例代码。
$(0) + ($(input.items.price) * $(input.items.qty))
- 单击完成。

- 在 " 配置映射 "对话框的值字段中,输入以下示例代码。
- 在地图策略节点输出页面上,单击保存。
- 选择日期单选按钮。
- 点击来源。
- 向下滚动并找到计算总和的代码。

- 使用代码 foreach: input.items 插入新行。

- 单击保存。
测试 API 定义
注意: 由于跨源资源共享 (CORS) 限制,汇编测试工具不能在 macOS Catalina 平台上与 Chrome 或 Safari 浏览器一起使用。
要使用 API 管理器测试工具测试您的 API 定义,请完成以下步骤:
管理 API 定义
新的应用程序接口已按预期运行,您可以开始对其进行管理。 要查看即时选项,请执行以下步骤。
您在本教程中执行的操作
- 已创建新 API
- 已将内容从一种 JSON 模式映射到另一种模式。



















