我剛開始使用Apigee。 我想創建一個API代理,它將根據'if'條件調用兩個目標端點。 我已經創建了一個API併爲其添加了資源,但問題在於這種情況下我得到兩個API。 如果thetype =「ABC」目標點應該是目標1 如果thetype =「XYZ」目標點應該是TARGET2 誰能告訴我如何與它進行呢?一個調用兩個不同目標端點的API代理
回答
如果您使用的是API代理編輯器UI,那麼你就可以做到以下幾點:
(1)從API代理編輯器工具欄選擇新/新資源。
然後,您將看到:
(2)輸入字段,可選目標URL,輸入對應於該資源的目標URL。
此工具會同時生成該資源,你可以選擇附加特定資源的政策條件的流動。答案
<ProxyEndpoint name="default">
<RouteRule name="Resource-1">
<Condition>(proxy.pathsuffix MatchesPath "/someResource") and (request.verb = "GET")</Condition>
<HTTPTargetConnection>
<URL>http://myAlternateEndpoint</URL>
</HTTPTargetConnection>
</RouteRule>
....
檢查出this question:
此工具也將添加所需的路由規則,你生成的XML將這個樣子。在那裏列出了查找RouteRules的詳細信息。 ProxyEndpoint documentation也會有所幫助。
你可以完成你正在使用此代碼嘗試:
<RouteRule name="routeToTarget1">
<Condition>thetype == "abc"</Condition>
<TargetEndpoint>target1</TargetEndpoint>
</RouteRule>
<RouteRule name="routeToTarget2">
<Condition>thetype == "xyz"</Condition>
<TargetEndpoint>target2</TargetEndpoint>
</RouteRule>
這些RouteRules將按順序進行評估。
請注意,你可能要下RouteRule有沒有條件,這意味着它會一直匹配。當type不等於「abc」或「xyz」時會發生什麼?假設目標1是默認的,你的代碼應該是這樣的:
<RouteRule name="routeToTarget2">
<Condition>thetype == "xyz"</Condition>
<TargetEndpoint>target2</TargetEndpoint>
</RouteRule>
<RouteRule name="routeToTarget1">
<TargetEndpoint>target1</TargetEndpoint>
</RouteRule>
謝謝邁克。 我嘗試了你發送的代碼,但它給我一個錯誤:: 上傳API vmife的文件時出錯。 messaging.config.beans.InvalidBundle。錯誤:[實體:代理,目標未找到:http://url../../;] – madhurika
'類型'這裏是表中的一列。在這裏,我正在爲兩個目標終端創建一個代理API。現在這些目標端點是兩個不同的API。我有一個篩選條件,其在瀏覽器中工作正常API的一個(HTTPS:// URL過濾$ = thtype當量123) 現在我的病情,我是說
你是如何填充「thetype」變量的?我相信你知道,但request.queryparam。$ filter(可以通過使用context.getVariable(「request.queryparam。$ filter」)在JavaScript策略中訪問)將具有值「thtype eq 123」(使用你在上面的評論中的例子)。您需要解析該字符串以獲取值123。 –
- 1. Wso2 API管理器:每個Tenant的不同API端點端口
- 2. 對同一API端點執行多個同時POST調用
- 3. NGINX - 在不同的端口反向代理多個API
- 4. One Apigee Api Proxy爲每個環境提供不同的目標端點
- 5. 使用改造在一個Activity中調用兩個端點
- 6. 兩個不同點擊兩個div,一個在另一個
- 7. Makefile - 兩個不同的目標
- 8. Django Rest Framework - 在同一個API調用中的兩個模型
- 9. 使用代理調用基於某個值的兩個不同函數
- 10. 一個標籤兩個不同的代碼
- 11. BrowserSync代理兩個後端端口
- 12. 一個或兩個調用API?
- 13. 從同一個標記調用兩個不同事件的javascript方法
- 14. 兩個API調用
- 15. 一個錨,兩個目標
- 16. 多個目標斷同一源樹不同的預處理宏
- 17. BizTalk 2010條件映射問題(從兩個不同的重複源節點到同一個目標節點)
- 18. 在同一個應用程序上的Web API端點
- 19. Android Eclipse,兩個不同標籤中的兩個活動,不斷調用onCreate()!
- 20. 一個MainWindow.xib用於兩個目標?
- 21. 將兩個不同的jquery點擊事件分配到同一個項目
- 22. 與Apache代理在同一端口80上的兩個應用程序?
- 23. 同一個項目中的兩個google API密鑰
- 24. 如何在WSO2 API管理器中爲一個API使用多個端點?
- 25. 兩個不同的項目,一個是Redis,一個是MongoDB?
- 26. 從具有兩個合同和端點的服務創建代理
- 27. 調試同一端口上的兩個Web應用程序
- 28. 兩個不同的谷歌標籤管理器帳戶在同一個域
- 29. 一個ServiceHost,兩個端點(net.tcp&basic http)
- 30. 具有多個端點的webpack代理
您好蘭迪,這種方法會給我兩個API的,但我想有兩個目標端點只有一個API。我不需要兩個資源。 – madhurika