步驟 5:新增政策

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

變更目標端點後,您就可以在 Proxy 中新增政策。

政策是 Apigee 元件,可透過 API Proxy 附加至訊息流程的不同位置。政策可轉換訊息格式、強制執行存取權控管、呼叫遠端服務、授權使用者、檢查訊息內容是否有潛在威脅,以及執行其他多項操作。

在本教學課程中,您將在 Proxy 中新增 XMLtoJSON 政策。這項政策會將 XML 訊息的酬載轉換為 JSON。也會變更回應的 Content-Type 標頭。

您可以在 Proxy 中將政策附加至流程。流程會控管政策的執行方式。在這個範例中,您會將政策新增至名為「PreFlow」PreFlow的特殊流程。PreFlow 中的政策會在 Proxy 中的任何其他政策之前執行。您不必深入瞭解流程才能閱讀本例,但如要進一步瞭解流程,請參閱「使用流程控管 API Proxy」一文。

全新 Proxy 編輯器

將 XMLtoJSON 政策新增至 Proxy 有兩個步驟:

建立政策的例項

如要使用政策,您必須先根據政策範本建立政策的新例項,如下所示:

  1. 如果您使用的是 Cloud 控制台中的 Apigee UI:請依序選取「Proxy development」>「API Proxies」

    如果您使用的是傳統 Apigee UI:請依序選取「Develop」>「API Proxies」,然後在「Proxies」窗格中選取 Proxy 的環境。

  2. 從 Proxy 清單中選取要新增政策的 Proxy。
  3. 按一下「開發」分頁標籤。

  4. 在左側窗格中,按一下「政策」資料夾旁的「+」按鈕。
  5. 在「Create policy」對話方塊中,選取「Standard policies」,即可依政策類型篩選可用的政策清單。
  6. 在「Select policy type」文字方塊中,向下捲動至「Mediation」,然後選取「XML To JSON」

  7. 您可以視需要變更政策的名稱顯示名稱。 根據預設,Apigee 會為政策名稱提供簡短的前置字串,在本例中為 X2J-。您可以在前置字串後方加上一系列以破折號分隔的描述性字詞。請參閱 命名慣例

    建立政策對話方塊。

    完成後,按一下「建立」即可建立政策。

「開發」檢視畫面的右側窗格現在會顯示 XML 到 JSON 政策:

開發檢視畫面中顯示的 XML 到 JSON 政策。

窗格下半部會顯示政策的 XML 程式碼。

如要進一步瞭解政策,請選取政策名稱旁邊的資訊圖示 資訊圖示。,然後按一下「XML 到 JSON 政策」。系統會顯示政策的參考頁面。

使用 Gemini Code Assist 檢查政策指示

如果您有 Gemini Code Assist 外掛程式,可以醒目顯示政策元素,查看該元素的相關資訊和使用方式。如需瞭解相關資訊,請參閱「使用 Gemini Code Assist 程式碼說明政策」。

變更政策名稱

如要變更政策名稱,請按照下列步驟操作:

  1. 在左側窗格中的「政策」下方選取所需政策。
  2. 在政策的 XML 程式碼中,在政策名稱縮寫後面的 <DisplayName> 元素中,新增政策的描述性短語,例如 change-xml-to-json

    將「change-xml-to-json」新增至政策名稱。

    系統會自動更新政策名稱,並顯示在「政策」下方。

    請參閱「 命名慣例」。

將政策附加至 PreFlow 中的步驟

建立 XML 轉換為 JSON 政策後,您可以將該政策附加至 PreFlow 中的步驟:

  1. 在左側窗格中,依序選取「Proxy Endpoints」>「default」>「PreFlow」

    Proxy Explorer 中 PreFlow 選取的目標端點。

    注意:您可能需要展開右側窗格中的視覺編輯器,才能查看所有元素。如要這麼做,請按一下並稍微向下拖曳視覺編輯器和文字編輯器之間的分隔線。

  2. 在視覺編輯器右下方的「回覆」窗格中,按一下「PreFlow」旁的「+」按鈕:

    按一下「回應」窗格中「PreFlow」旁的 + 按鈕。

  3. 在「新增政策步驟」對話方塊中,選取「X2J-change-xml-to-json」X2J-change-xml-to-json政策。
  4. 按一下「新增」,附加政策。

    「Response」窗格現在會顯示 X2J-change-xml-to-json 政策:

    回應窗格中顯示的 XML 到 JSON 政策。

  5. 按一下「儲存」,即可儲存目前修訂版本的變更內容。
  6. 如要將變更內容部署至修訂版本,請按一下「Deploy」(部署),然後按照「 Deploy an API proxy」中的操作說明進行。

傳統 Proxy 編輯器

如要將 XMLtoJSON 政策新增至 Proxy,請按照下列步驟操作:

  1. 在瀏覽器中開啟 Apigee UI 並登入。
  2. 按一下主視窗中的「API Proxy」,然後選取 Proxy。在本例中,請選取您在步驟 2:建立 API Proxy 中建立的 Proxy。
  3. 按一下「開發」分頁標籤:

    按一下 Proxy 編輯器中的「Develop」分頁。

    Apigee 會顯示 API Proxy 編輯器。

  4. 在「Navigator」窗格中,依序按一下「Proxy Endpoints」>「default」>「PreFlow」

    Apigee 會顯示流程編輯器:

    流程編輯器。

    此外,Apigee 會在「Code」窗格中顯示預設 Proxy 端點設定:

    <?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>/myproxy</BasePath>
        <Properties/>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
  5. 如要在 Proxy 中新增政策,請在回應 PreFlow (流程編輯器的下半部) 中按一下「+ 步驟」按鈕:

    回應 PreFlow 中的「+ 步驟」按鈕。

    Apigee 會在「Add」對話方塊中顯示分類的政策清單,供您新增至流程:

    政策清單。

  6. 向下捲動,然後在「中介服務」類別中選取「XMLtoJSON」XMLtoJSON政策。
  7. 保留預設名稱,然後按一下「新增」

    Apigee 會將新政策附加至回應的 PreFlow:

    在回應的 Preflow 中附加新政策。

    請注意,當您點選「Add」時,Apigee 會執行以下操作:

    • 在「Navigator」窗格中的「Policies」下方新增新政策。
    • 在「流程」窗格中新增 XMLtoJSON 政策。
    • 在「Code」窗格中顯示政策的 XML 設定。
  8. 按一下「儲存」,即可儲存目前修訂版本的變更內容。
  9. 如要部署變更,請按一下「總覽」分頁標籤,然後按一下「部署」按鈕。

測試新政策

如要測試新政策,請在終端機視窗中執行下列 curl 指令:

curl https://YOUR_ENV_GROUP_HOSTNAME/myproxy

其中 YOUR ENV_GROUP_HOSTNAME 是環境群組主機名稱。請參閱「 找出環境群組主機名稱」一文。

詳情請參閱「 呼叫 API Proxy」。

或者,您也可以在瀏覽器中開啟相同的網址。

您應該會收到下列回應內容:

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

如果回應主體不符合上述格式,請檢查以下事項:

  1. 您的目標端點為 https://mocktarget.apigee.net/xml,如步驟 4:變更目標端點所述:
    • 如果您收到 Hello, Guest! 做為回應,則需要將 /xml 附加至目標端點的結尾。
    • 如果您收到 404,請確認您存取的是 apigee.net,而非 apigee.com
  2. 已部署最新的 Proxy 修訂版本。請嘗試重新部署 API Proxy,如「部署 API Proxy」和「取消部署 API Proxy」一節所述。

如要查看 HTTP 要求和回應標頭,請使用 -vs 選項在 curl 中啟用詳細資訊 (v 會使回應變得冗長,但 s 會抑制一些不太重要的詳細資料)。以下範例假設 Proxy 名稱為 myproxy::

curl -vs https://YOUR_ENV_GROUP_HOSTNAME/myproxy  | python -m json.tool

您應該會收到類似以下的回應。請注意,回應中的 Content-Type 標頭為 application/json。XMLtoJSON 政策會在傳回回應前變更標頭。

*   Trying 10.20.30.40...
* TCP_NODELAY set
* Connected to apitest.acme.com (10.20.30.40) port 443 (#0)
...
> GET /myproxy HTTP/1.1
> Host: apitest.acme.com
> 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"
  }
}

下一步

深入瞭解