共用方式為


新增綜合 GraphQL API 並設定欄位解析器

適用於:所有 APIM 層

在 APIM 中,您可以使用兩種模型新增 GraphQL API:傳遞至現有的 GraphQL 端點,或匯入 GraphQL 結構描述,並使用自訂欄位解析器建立綜合 GraphQL API。 如需詳細資訊,請參閱 GraphQL 概觀

附註

目前,此功能無法在工作區中使用。

在本文中,您將:

  • 將 GraphQL 結構描述匯入 Azure API 管理 執行個體。
  • 使用現有的 HTTP 端點設定 GraphQL 查詢的解析器。
  • 測試 GraphQL API。

如果您要將現有的 GraphQL 端點公開為 API,請參閱匯入 GraphQL API

先決條件

移至您的 API 管理執行個體

  1. 在 Azure 入口 網站中,搜尋並選取 [API 管理服務]:

    顯示搜尋結果中 API 管理服務的螢幕快照。

  2. 在 [ API 管理服務 ] 頁面上,選取您的 API 管理實例:

    顯示 API 管理服務頁面上 API 管理實例的螢幕快照。

新增 GraphQL 結構描述

  1. 在左窗格的 [API] 底下,選取 [API]。

  2. [定義新 API] 底下,選取 [GraphQL ] 磚。

    選取 GraphQL 磚的螢幕擷取畫面。

  3. 在對話方塊中,選取 [完整],然後在必要欄位中輸入值,如下表所述。

    GraphQL 架構建立頁面的螢幕擷取畫面。

    價值觀 描述
    顯示名稱 將會據以顯示 GraphQL API 的名稱。
    名稱 GraphQL API 的原始名稱。 當您輸入顯示名稱時,會自動填入。
    GraphQL 類型 選取 [綜合 GraphQL],以便從 GraphQL 結構描述檔案匯入。
    後援 GraphQL 端點 選擇性地輸入具有 GraphQL API 端點名稱的 URL。 若未為欄位設定自訂解析器,API 管理會將 GraphQL 查詢傳遞至此端點。
    說明 新增 API 的描述。
    URL 配置 根據您的 GraphQL 端點選取配置。 如果您的 GraphQL API 包含訂閱類型,請選取包含 WebSocket 配置的選項之一 (WSWSS)。 預設選項為 HTTP(S)。
    API URL 尾碼 新增 URL 尾碼,以識別 API 管理 執行個體中的特定 API。 在 API 管理 實例中必須是唯一的。
    基底 URL 顯示 API 基底 URL 的不可編輯欄位。
    Tags (標籤) 選擇性地將您的 GraphQL API 與新的或現有的標籤建立關聯。
    產品 將 GraphQL API 與產品建立關聯,以將其發佈。
    要為此 API 設定版本嗎? 選取核取方塊,將版本控制配置套用至您的 GraphQL API。
  4. 選取 [建立]

  5. 建立API之後,請檢閱或修改綱要 Schema 索引標籤。

設定解析器

設定解析器,將結構描述中的欄位對應至現有的 HTTP 端點。 這裡提供高階步驟。 如需詳細資訊,請參閱設定 GraphQL 解析器

假設您匯入下列基本 GraphQL 結構描述,並想要設定查詢的 users 解析器。

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. 在左窗格的 [API] 底下,選取 [API]。

  2. 選取您的 GraphQL API。

  3. 結構描述 索引標籤上,檢閱您要在其中設定解析器的物件類型中欄位的結構描述。

    1. 選取欄位,然後將指標停留在左邊界中。

    2. 選取 [新增解析器]。

      在入口網站中新增 GraphQL 解析器的螢幕擷取畫面。

  4. Create resolver 窗格中:

    1. 視需要更新 [名稱] 屬性,選擇性地輸入 [描述],然後確認或更新 [類型] 和 [欄位] 選取項目。
    2. 在 [資料來源] 中,選取 [HTTP API]
  5. 在 [解析器原則] 編輯器中,使用您案例中的子元素來更新 <http-data-source> 元素。 例如,下列解析器會透過呼叫現有的 HTTP 資料來源來檢索users欄位GET

        <http-data-source>
            <http-request>
                <set-method>GET</set-method>
                <set-url>https://myapi.contoso.com/users</set-url>
            </http-request>
        </http-data-source>
    

    在入口網站中配置解析器策略的截圖。

  6. 選取 [建立]

  7. 若要解析結構描述中另一個欄位的資料,請重複上述步驟以建立另一個解析器。

秘訣

當您編輯解析器原則時,請選取 [執行測試] 來檢查該資料來源的輸出,以便針對結構描述進行驗證。 如果發生錯誤,回應會包含疑難排解資訊。

測試 GraphQL API

  1. 移至您的 API 管理實例。

  2. 在左窗格的 [API] 區段中,選取 [API]。

  3. 在 [所有 API] 底下,選取 GraphQL API。

  4. 選取 [測試] 索引標籤以存取測試主控台。

  5. 在 [標題] 底下:

    1. 名稱 功能表中選取標頭。
    2. [值] 方塊中輸入值。
    3. 選取 [ 新增標頭] 來新增更多標頭。
    4. 使用資源回收筒按鈕刪除標頭。
  6. 如果您已將產品新增至 GraphQL API,請在 [套用產品範圍] 下新增產品範圍。

  7. 查詢編輯器中,執行下列其中一項:

    1. 從編輯器左側功能表中的清單中選取至少一個欄位或子欄位。 您選取的欄位和子欄位會出現在查詢編輯器中。

    2. 開始在查詢編輯器中輸入以撰寫查詢。

      查詢編輯器的螢幕擷取畫面。

  8. 在 [查詢變數] 底下,新增變數以重複使用相同的查詢或變動,並傳遞不同的值。

  9. 選取 [傳送]

  10. 檢視回應

    測試查詢回應的螢幕擷取畫面。

  11. 重複上述步驟以測試不同的承載。

  12. 完成測試後,請退出測試控制台。

保護 GraphQL API 的安全

藉由套用現有的驗證和授權原則GraphQL 驗證原則來保護 GraphQL API,防範 GraphQL 特定攻擊。