第 6 步:附加政策

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

政策可以转换消息格式、强制执行访问权限控制、调用远程服务、授权用户、检查消息内容是否存在潜在威胁以及执行更多其他操作。如需了解详情,请参阅什么是政策?

代理和目标端点定义请求和响应消息处理的流水线,这些流水线称为请求和响应流。流是 API 请求处理路径上的顺序阶段。政策附加到请求和响应消息流中的不同位置,成为处理步骤。

在下面的步骤中,您将创建一个新政策并将其附加到 API 代理的 PreFlow 响应流中,以确保在任何其他处理发生之前应用该政策。本教程中使用的 XMLtoJSON 政策会将 API 响应消息的载荷从 XML 转换为 JSON。

  1. 创建 XMLtoJSON 政策。
    1. 在 Apigee 部分中展开 helloworld API 代理软件包,将光标放在 policies 文件夹上,然后点击 “创建”图标

      Apigee 部分中的 default.xml 目标端点文件

      此时 Create policy 向导会打开。

    2. 选择 Mediation 作为政策类别。
    3. 选择 XML to JSON 作为政策类型。
    4. 输入 XMLtoJSON 作为政策名称,然后按 Enter

      该政策会添加到 Apigee 部分中 API 代理的 /policies 文件夹中,并在编辑器中打开。

    5. 修改政策,将 <OutputVariable><Source> 元素设置为 response
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLtoJSON">
          <DisplayName>XMLtoJSON</DisplayName>
          <Properties/>
          <Format>yahoo</Format>
          <OutputVariable>response</OutputVariable>
          <Source>response</Source>
      </XMLToJSON>
  2. 将政策附加到默认代理端点。
    1. 展开 helloworld API 代理软件包中的 proxies 文件夹,然后点击 default.xml 以在编辑器中打开文件。
    2. 在 API 代理 <PreFlow> <Response> 流中添加一个引用 XMLtoJSON 政策的 <Step> 元素,如下所示。
      <ProxyEndpoint name="default">
         <PreFlow name="PreFlow">
            <Request>
               <Step>
                  <Name>verify-api-key</Name>
               </Step>
               <Step>
                  <Name>remove-query-param-apikey</Name>
               </Step>
               <Step>
                  <Name>impose-quota</Name>
               </Step>
            </Request>
            <Response>
               <Step>
                  <Name>XMLtoJSON</Name>
               </Step>
            </Response>
         </PreFlow>
       ...
      </ProxyEndpoint>
  3. 如需重新部署环境,请将光标放在 Apigee 部分中的 dev 环境文件夹上,然后点击 “部署”图标

    将光标放在 dev 环境文件夹上时显示“部署”图标

  4. 当系统提示您选择要导出的测试软件包时,请点击在不使用测试软件包的情况下部署,因为测试软件包已导出。

    导出测试软件包的提示

  5. Terminal 标签页中调用 API。
    curl localhost:8998/helloworld?apikey=ZQA5euYtNeJ7ZCGCJMpvd6F2BZOmxOzY

    XML 响应将转换为 JSON,如下所示:

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

恭喜!您已成功将 XMLtoJSON 政策附加到 API 代理!

接下来,您将把 API 作为归档部署到 Apigee 环境,以进行集成测试和生产环境发布。

1 2 3 4 5 6 (下一步)第 7 步:部署到 Apigee 环境 8