您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
現在變更目標端點,現在可以為 Proxy 新增政策。
「政策」是 Edge 元件,可透過 API Proxy 附加至訊息流程中的不同點。政策可轉換訊息格式、強制執行存取權控管、呼叫遠端服務、授權使用者、檢查訊息內容是否有潛在威脅,以及執行更多功能。
在本教學課程中,您會將 XMLtoJSON 政策新增至 Proxy。這項政策會將 XML 訊息的酬載轉換為 JSON。也會變更回應的 Content-Type
標頭。
如何將 XML 新增至 JSON 政策至 Proxy:
- 在瀏覽器中開啟 Edge UI 並登入。
- 在主視窗中按一下「API Proxy」,然後選取 Proxy。在這個範例中,請選取您在「步驟 1:建立 API Proxy」中建立的 Proxy。
按一下「Develop」分頁標籤:
Edge 會顯示 API Proxy 編輯器。
在「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>
- 如要將政策新增至 Proxy,請在回應 PreFlow (流程編輯器的下半部) 中按一下「+ Step」按鈕:
Edge 會在「Add」對話方塊中顯示分類的政策清單,讓您新增至流程:
- 向下捲動,並在「中介服務」類別選取「從 XML 到 JSON」政策。
保留預設名稱,然後按一下「新增」。
Edge 會將新政策附加至回應的 PreFlow:
請注意,按一下「Add」後,Edge 會執行以下動作:
- 在「Navigator」窗格中的「Policies」之下新增政策。
- 在「Flow」窗格中,將 XML 新增至 JSON 政策。
- 在「Code」窗格中顯示政策的設定 XML。
- 按一下「儲存」,將目前的修訂版本儲存到您的變更。
現在就試試看吧!在終端機視窗中,執行下列 curl
指令:
curl https://org_name-test.apigee.net/getstarted
在此情況下:
- org_name 是 Apigee 在您建立 Apigee 帳戶時指派給您的機構名稱。
-test
是環境。您已在「步驟 1:建立 API Proxy」中將新的 Proxy 部署至「測試」環境。/getstarted
是 Proxy 基本路徑。
或者,你也可以在瀏覽器中開啟相同的網址。
您應該會收到下列回應內容:
{ "root": { "city": "San Jose", "firstName": "John", "lastName": "Doe", "state": "CA" } }
如果回應內文看起來不像這樣,請檢查下列事項:
- 如步驟 3:變更目標端點所述,您的目標端點為「https://mocktarget.apigee.net/xml」:
- 如果系統顯示「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" } }