您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 info
现在,您已更改目标端点,接下来可以将 政策添加到代理中。
“政策”是一个 Edge 组件,您可以通过 API 代理将其附加到消息 流中的不同点。政策可以转换消息格式、强制执行访问权限控制、 调用远程服务、授权用户、检查消息内容是否存在潜在威胁,以及执行更多 其他操作。
在本教程中,您将向代理添加 XMLtoJSON 政策。此政策会将 XML 消息的载荷转换为 JSON。它还会更改响应的 Content-Type 标头。
如需将 XML 添加到 JSON 政策,请执行以下操作:
- 在浏览器中打开 Edge 界面 并登录。
- 点击主窗口中的 API 代理 ,然后选择一个代理。在本示例中, 选择您在第 1 步:创建 API 代理中创建的代理。
点击 开发 标签页:

Edge 会显示 API 代理编辑器。
在Navigator 窗格中,点击代理端点 > 默认 > PreFlow:

Edge 会显示流编辑器:

此外,Edge 还会显示 代码 窗格中的默认代理端点配置:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ProxyEndpoint name="default"> <Description/> <FaultRules/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> <Flows/> <HTTPProxyConnection> <BasePath>/getstarted</BasePath> <Properties/> <VirtualHost>default</VirtualHost> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection> <RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule> </ProxyEndpoint>- 要向代理添加政策,请点击+ 步骤按钮,在
响应 PreFlow(流程编辑器下半部分)中:

Edge 会在 添加 对话框中显示一个分类政策列表, 您可以将其添加到流程中:

- 向下滚动,然后选择“中介”类别中的 XML 到 JSON 政策。
保留默认名称,然后点击添加 。
Edge 会将新政策附加到响应的 PreFlow 中:

请注意,当您点击添加 时,Edge 会执行以下操作:
- 在导航 窗格中的政策 下添加新政策。
- 在流窗格中添加 XML 到 JSON 政策。
- 在代码窗格中显示政策的配置 XML。
- 点击保存,保存当前修订版本以及您所做的更改。
现在试试看!在终端窗口中,执行以下 curl 命令:
curl https://org_name-test.apigee.net/getstarted
其中:
- org_name 是 Apigee 在您 创建 Apigee 账号时分配给您的组织名称。
-test是环境。您在第 1 步:创建 API 代理中将新代理部署到了 "test"环境。/getstarted是代理基本路径。
您也可以在浏览器中打开同一网址。
您应该会收到以下响应:
{
"root": {
"city": "San Jose",
"firstName": "John",
"lastName": "Doe",
"state": "CA"
}
}如果响应正文如下所示,请检查:
- 您的目标端点为“https://mocktarget.apigee.net/xml”,如
第 3 步:更改目标端点中所述:
- 如果您收到“Hello, Guest!”作为响应,则您需要将“/xml”附加到目标端点的末尾 。
- 如果您收到 404 错误,请检查您访问的是“apigee.net”,而不是“apigee.com”。
- 系统会部署代理的最新修订版本。按照部署和取消部署 API 代理中的说明,尝试重新部署 API 代理。
如需查看 HTTP 请求和响应标头,请使用
-vs 选项启用 curl 中的详尽程度(v 使响应变详细,但 s 禁止显示部分不太有趣的细节)。例如:
curl -vs https://ahamilton-eval-test.apigee.net/getstarted | python -m json.tool
您应该会看到如下所示的响应。请注意,响应中的 Content-Type 标头为“application/json”。JXML 到 JSON 政策将更改标头,然后再发回响应。
* Trying 10.20.30.40... * TCP_NODELAY set * Connected to ahamilton-eval-test.apigee.net (10.20.30.40) port 443 (#0) ... > GET /getstarted HTTP/1.1 > Host: ahamilton-eval-test.apigee.net > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 200 OK < Date: Fri, 25 May 2018 16:20:00 GMT < Content-Type: application/json;charset=UTF-8 < Content-Length: 77 < Connection: keep-alive < X-Powered-By: Apigee < Access-Control-Allow-Origin: * ... { [77 bytes data] { "root": { "city": "San Jose", "firstName": "John", "lastName": "Doe", "state": "CA" } }