步驟 4:新增政策

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

現在變更目標端點,現在可以為 Proxy 新增政策。

「政策」是 Edge 元件,可透過 API Proxy 附加至訊息流程中的不同點。政策可轉換訊息格式、強制執行存取權控管、呼叫遠端服務、授權使用者、檢查訊息內容是否有潛在威脅,以及執行更多功能。

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

如何將 XML 新增至 JSON 政策至 Proxy:

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

    Edge 會顯示 API Proxy 編輯器。

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

    Edge 會顯示流程編輯器:

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

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

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

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

    請注意,按一下「Add」後,Edge 會執行以下動作:

    • 在「Navigator」窗格中的「Policies」之下新增政策。
    • 在「Flow」窗格中,將 XML 新增至 JSON 政策。
    • 在「Code」窗格中顯示政策的設定 XML。
  8. 按一下「儲存」,將目前的修訂版本儲存到您的變更。

現在就試試看吧!在終端機視窗中,執行下列 curl 指令:

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

在此情況下:

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

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

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

如果回應內文看起來不像這樣,請檢查下列事項:

  1. 步驟 3:變更目標端點所述,您的目標端點為「https://mocktarget.apigee.net/xml」:
    • 如果系統顯示「Hello, Guest!」做為回應,您需要在目標端點的結尾附加「/xml」。
    • 如果評估結果為 404,請確認您存取的是「apigee.net」,而非「apigee.com」。
  2. 已部署最新的 Proxy 修訂版本。請嘗試按照部署及取消部署 API Proxy 中的說明重新部署 API Proxy。

如要查看 HTTP 要求和回應標頭,請在 curl 中啟用搭配 -vs 選項的詳細程度 (v 表示回應詳細,但 s 會隱藏部分較不有趣的詳細資料)。例如:

curl -vs https://ahamilton-eval-test.apigee.net/getstarted | python -m json.tool

您應該會看到類似以下的回應。請注意,回應中的 Content-Type 標頭是「application/json」。XML 到 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"
  }
}

後續步驟

瞭解詳情