第 4 步:添加政策

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

现在,您已更改目标端点,接下来可以将政策添加到代理中。

政策是一个 Edge 组件,您可以将其附加到邮件中不同位置 API 代理流。政策可以转换消息格式、强制执行访问权限控制、调用远程服务、授权用户、检查消息内容是否存在潜在威胁,以及执行更多其他操作。

在本教程中,您将向代理添加 XMLtoJSON 政策。此政策会将 XML 消息的载荷转换为 JSON。它还会更改响应的 Content-Type 标头。

如需将 XML 添加到 JSON 政策,请执行以下操作

  1. 在浏览器中打开 Edge 界面并登录。
  2. 点击主窗口中的 API 代理,然后选择一个代理。在本示例中 选择您在第 1 步:创建 API 代理中创建的代理。
  3. 点击 开发 标签页:

    Edge 会显示 API 代理编辑器。

  4. 导航窗格中,点击代理端点 > 默认 > PreFlow

    Edge 会显示 Flow 编辑器:

    此外,Edge 会在 Code 窗格:

    <?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>
  5. 要向代理添加政策,请点击响应 PreFlow(流程编辑器下半部分)中的 + 步骤按钮:

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

  6. 向下滚动,然后选择“中介”类别中的 XML 到 JSON 政策。
  7. 保留默认名称,然后点击添加

    Edge 将新政策附加到响应的 PreFlow:

    请注意,当您点击 Add(添加)时,Edge 会执行以下操作:

    • 导航窗格中的政策下添加新政策。
    • 窗格中添加 XML 到 JSON 政策。
    • 代码窗格中显示政策的配置 XML。
  8. 点击保存,保存当前修订版本以及您所做的更改。

现在试试看!在终端窗口中,执行以下 curl 命令:

curl https://org_name-test.apigee.net/getstarted

其中:

。 <ph type="x-smartling-placeholder">

您也可以在浏览器中打开同一网址。

您应该会收到以下响应:

{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

如果响应正文如下所示,请检查:

  1. 您的目标端点为“https://mocktarget.apigee.net/xml”,如 第 3 步:更改目标端点: <ph type="x-smartling-placeholder">
      </ph>
    • 如果您收到“Hello, Guest!”作为响应,则您需要将“/xml”附加到目标端点的末尾。
    • 如果您收到 404 错误,请检查您访问的是“apigee.net”,而不是“apigee.com”。
  2. 系统会部署代理的最新修订版本。按照说明尝试重新部署您的 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"
  }
}

下一步

更加深入