您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
變更目標端點後,您就可以在 Proxy 中新增政策。
政策是 Edge 元件,可透過 API Proxy 附加至訊息流程中的不同點。政策可以轉換訊息格式、強制執行存取控制、呼叫遠端服務、授權使用者、檢查訊息內容是否有潛在威脅,以及執行更多操作。
在本教學課程中,您會將 XMLtoJSON 政策新增至 Proxy。這項政策會將 XML 訊息的酬載轉換為 JSON。這也會變更回應的 Content-Type 標頭。
如要將 XML 轉為 JSON 政策新增至 Proxy:
- 在瀏覽器中開啟 Edge UI 並登入。
- 在主視窗中按一下「API Proxy」,然後選取 Proxy。在本範例中,請選取您在「步驟 1:建立 API Proxy」中建立的 Proxy。
按一下「開發」分頁標籤:

Edge 會顯示 API Proxy 編輯器。
在「Navigator」窗格中,依序點選「Proxy Endpoints」>「default」>「PreFlow」:

Edge 會顯示流程編輯器:

此外,Edge 會在「程式碼」窗格中顯示預設的 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>- 如要在 Proxy 中新增政策,請在回應 PreFlow (流程編輯器下半部) 中,按一下「+ Step」按鈕:

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

- 向下捲動,然後選取「中介服務」類別中的「XML to JSON」政策。
保留預設名稱,然後按一下「新增」。
Edge 會將新政策附加至回應的 PreFlow:

請注意,點選「新增」時,Edge 會執行下列操作:
- 在「Navigator」窗格的「Policies」下方新增政策。
- 在「流程」窗格中新增 XML 至 JSON 政策。
- 在「程式碼」窗格中顯示政策的設定 XML。
- 按一下「儲存」,即可儲存目前的修訂版本和變更。
現在就試試看吧!在終端機視窗中,執行下列 curl 指令:
curl https://org_name-test.apigee.net/getstarted
其中:
- org_name 是您建立 Apigee 帳戶時,Apigee 指派給您的機構名稱。
-test是環境。您已在「步驟 1:建立 API Proxy」中,將新 Proxy 部署至「test」環境。/getstarted是 Proxy 底層路徑。
你也可以在瀏覽器中開啟相同網址。
您應該會收到下列回應內容:
{
"root": {
"city": "San Jose",
"firstName": "John",
"lastName": "Doe",
"state": "CA"
}
}如果回應主體不是這樣,請檢查下列事項:
- 目標端點為「https://mocktarget.apigee.net/xml」,如「步驟 3:變更目標端點」所述:
- 如果收到「Hello, Guest!」的回覆,請在目標端點結尾附加「/xml」。
- 如果收到 404 錯誤,請確認您存取的是「apigee.net」,而非「apigee.com」。
- 系統會部署 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" } }