設定流程

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

流程是 API Proxy 的基本構成要素。流程可讓您設定行為 讓您設定 API 執行政策和程式碼的序列 Proxy 上。

如需流程的概念總覽,請參閱控制 Proxy 執行方式 流程

本主題說明如何建立條件式流程,以及如何在 簡單來說建立條件的秘訣比本文主要探討更多細節 主題。詳情請參閱流程總覽 變數條件 ,透過資料流變數進行確認。

將政策附加至流程

Edge 提供許多不同類型的預先定義政策,可實施安全防護機制、管理 以及處理訊息等此外,政策可讓您新增自訂程式碼至 完全自訂訊息處理作業

例如:

  • OAuth 安全性 政策附加至 ProxyEndpoint 的要求 PreFlow。由於 ProxyEndpoint 的要求 PreFlow 是管道中的第一個流程 拒絕違反您安全性政策的要求。
  • JSON 到 XML 轉換 政策附加至 TargetEndpoint 的回應 PostFlow,轉換 就會傳回 XML 回應
  • JavaScript 政策附加至條件式 ProxyEndpoint 的流程 :執行 JavaScript 程式碼以處理 要求

建立條件式流程後,即可在政策附件中使用這個流程。流暢度 選取後,按一下要求或回應圖表中的「+ 步驟」圖示,新增 將新政策或現有政策加入流程

「導覽工具」選單以方框特別標出名為「問題」的條件流程示例,
    「流程」窗格中就會顯示「步驟」按鈕。

在「Add Step」(新增步驟) 窗格中,系統會建立新的政策執行個體,並將政策類型設為 Quota (配額) 和
    顯示名稱 Quota-2

透過將政策附加至所選流程,您將設定 API Proxy 來強制執行 配額政策僅適用於向該流程 URI 和動詞組合發出的要求。舉例來說,如果您在 將政策附加至要求中的 learn 流程,下列 XML 如下: 產生一些指令

<ProxyEndpoint name="default">
...
   <Flow name="issue">
        <Description/>
        <Request>
            <Step>
                <Name>Quota-2</Name>
            </Step>
        </Request>
        <Response/>
        <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition>
    </Flow>
... 
</ProxyEndpoint>

在這項配置中,如果 GET 要求出現在含有 URI 的 API Proxy 中, 圖案/issue/** 斜線) 時,系統會對該 API 呼叫強制執行配額。

關於條件式流程

附加至 PreFlow 或 PostFlow 的所有政策一律會執行。不過, 只有在流程的條件評估為 true 時,才會執行條件流程中的政策。

系統處理要求和回應時,只會針對每個要求執行一個條件式流程 區隔 - 用來判斷條件為 true 的第一個流程。換句話說 每個部分執行的條件式流程:

  • ProxyEndpoint 的要求管道
  • TargetEndpoint 的要求管道
  • ProxyEndpoint 的回應管道
  • TargetEndpoint 的回應管道

影片:觀看短片,進一步瞭解條件式流程。

例如,下列 ProxyEndpoint 定義顯示所執行的條件流程 傳送至 API Proxy 的任何 HTTP GET 要求時,由 ProxyEndpoint 執行:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>   
  <Flows>
    <Flow name="Flow-1">
      <Condition>request.verb="GET"</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

請注意,此條件會參照 request.verb 流程 變數。流程變數是已命名的參照,會保留相關的狀態資訊 以及 Edge 處理的 API 交易邊緣會定義許多狀態變數 參照。

符合 REST 樣式的服務是一組 API 資源。API 資源是 URI 路徑片段 ,用於識別開發人員可透過呼叫您的 API 存取的一些實體。舉例來說 服務後端提供天氣報表和天氣預報,您的 API 可能會定義 對應至這些 API 的條件式流程 資源:/reports/forecasts。發生 API 呼叫時 網址包含這些資源的其中一個資源,條件評估為 true 和邏輯 執行狀態

應用程式開發人員之後會向下列表單的網址提出要求,以便存取您的資源:

http://myAPIs.myCo.com/weather/reports

或是:

http://myAPIs.myCo.com/weather/forecasts

在 API Proxy 中,您可以定義對應至特定 資源:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>   
  <Flows>
    <Flow name="Flow-1">
      <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition>
      <Request/>
      <Response/>
    </Flow>
    <Flow name="Flow-2">
      <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

在這個範例中,您參照了 proxy.pathsuffix 流程變數。 ,其中包含用來存取 API Proxy 的網址的後置字串部分。之後,您就能將 分別套用不同政策及各項資源的條件式流程。

新增條件式流程

在本簡單的範例中,您設定了一個流程,只有在要求訊息是 HTTP GET

如要新增條件式流程,請選取 API Proxy 建構工具中的「Develop」(開發) 分頁標籤。

Proxy 建構工具「開發」分頁

按一下所需端點的 + 圖示

新增條件式流程按鈕

您可以利用「New Conditional Flow」表單為流程命名並設定條件。在 下列範例中,您可以新增一個簡單的條件來評估要求訊息的 HTTP 基本路徑後方任何 URI 的 GET 動詞 (而不是 PUTPOST 等)。

在「New Conditional Flow」窗格中,流程名稱為 Flow-1,而條件類型
    路徑和動詞的格式

(瞭解如何在流程變數與 條件)。

名為「Flow-1」Flow-1的新流程現在會顯示在導覽工具選單中。

醒目顯示流程 1

現在,觀察 ProxyEndpoint 的 XML 設定。選取「Flow-1」Flow-1的 「Navigator」選單。

畫面會顯示以下設定。

<PreFlow name="PreFlow">
    <Request/>
    <Response/>
</PreFlow>   
<Flows>
    <Flow name="Flow-1">
      <Request/>
      <Response/>
      <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
    </Flow>
</Flows>
<PostFlow name="PostFlow">
    <Request/>
    <Response/>
</PostFlow>

後續步驟

以下主題將進一步說明建構條件及使用方法 變數: