提供意見
API Proxy 教戰手冊模式
您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件 。 資訊
本主題探討 Apigee Edge 教戰手冊範例中呈現的一些 API Proxy 開發模式。隨著我們新增更多食譜集樣本,我們打算在這個主題中加入更多模式。
JavaScript HTTP 用戶端模式
JavaScript HTTP 用戶端模式是其中一種模式,可用於透過 Apigee Edge 建立伺服器端混搭 。Apigee 的 JavaScript 物件模型可讓您將 JavaScript 程式碼直接接到 API Proxy 流程。物件模型的 httpClient 物件可讓您呼叫後端服務,並使用 JavaScript 擷取結果。
提示: 透過 Apigee API Proxy 建立混搭的方法不只一種,JavaScript HTTP 用戶端模式只是其中一種。如果您偏好編輯 XML 檔案,政策組合可能是最適合您的技巧。如果您偏好編寫伺服器端 JavaScript 程式碼,可以開發 JavaScript 用戶端應用程式或 Node.js 應用程式來達到相同的結果。
政策建立模式
政策組合是一種 Apigee API Proxy 模式,可讓您使用政策,將多個後端目標的結果合併為單一回應。事實上,政策組合可讓您使用政策建立混搭。
提示: 透過 Apigee API Proxy 建立混搭的方法不只一種,政策組合只是其中一種。如果您偏好編輯 XML 檔案來編寫程式碼,政策組合可能是最適合您的技巧。如果您偏好編寫伺服器端 JavaScript 程式碼,可以開發 JavaScript 用戶端應用程式或 Node.js 應用程式來達到相同的結果。
政策組合模式的核心是 ServiceCallout 政策。Service Call 政策可做為後端 API 或服務的 HTTP 用戶端。不過,為了確保功能可正常運作,Service callout 會仰賴其他政策,讓使用者與遠端 API 或服務進行有意義的互動。其他政策則的用途是產生服務呼叫所傳送的要求訊息,以及剖析遠端 API 或服務回應訊息中的內容。
政策組合教戰手冊範例 使用三項政策:AssignMessage 、ServiceCallout 和 ExtractVariables 。這些政策會封裝您要傳送至後端的 request 訊息、將訊息轉送至後端的用戶端 ,以及剖析每個 API 回應並為回應資料指派變數的訊息剖析器 。呼叫完所有呼叫後,系統會將收集到的變數合併,並傳回至單一 JSON 物件中。
以下簡要說明這三項政策:
AssignMessage :建立要求訊息、填入 HTTP 標頭和查詢參數,並設定 HTTP 動詞。
ServiceCallout :參照 AssignMessage 政策建立的訊息、定義外部呼叫的目標網址,並定義目標服務傳回的回應物件名稱。
ExtractVariables :通常定義 JSONPath 或 XPath 運算式,可剖析上述 Service callout 政策產生的訊息。政策接著會設定變數,其中包含從 Service 呼叫 回應剖析出的值。
如需政策組成模式的完整範例,請參閱「使用政策組合 」一文。
提供意見
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權 ,程式碼範例則為阿帕契 2.0 授權 。詳情請參閱《Google Developers 網站政策 》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2024-02-07 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
想進一步說明嗎?
{"lastModified": "\u4e0a\u6b21\u66f4\u65b0\u6642\u9593\uff1a2024-02-07 (\u4e16\u754c\u6a19\u6e96\u6642\u9593)\u3002"}
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2024-02-07 (世界標準時間)。"],[],[]]