共用方式為


適用於 JavaScript 開發人員的 Azure GraphQL

GraphQL 可協助您的 JavaScript 應用程式透過單一請求精確獲取所需的數據。 本文說明 GraphQL 是什麼、您可能會使用它的原因,以及 Azure 服務如何以最少的努力來協助您建置 GraphQL 應用程式。 無論您是移轉現有的 GraphQL 應用程式或建置新的 GraphQL 應用程式,Azure 都提供工具和服務來簡化程式。

什麼是 GraphQL?

GraphQL 是 Web 應用程式與伺服器和資料庫通訊的新式方式。 將其視為更聰明的方式來要求您需要的資訊:

  • 這就像訂購一頓自定義的餐點,而不是接受固定菜單—您可以要求完全符合您需求的餐點。
  • 它適用於 React、Vue 或 Angular 等 JavaScript 應用程式
  • 它可讓您的 Web 應用程式更快速且更容易建置

GraphQL 可讓您提出一個精確的要求,以取得您需要的所有數據,而不是對不同的伺服器端點提出多個要求(例如使用傳統 REST API - 大部分 Web 服務通訊的標準方式。

為何要在 Web 應用程式中使用 GraphQL?

GraphQL 可讓您的 JavaScript 應用程式以三種主要方式變得更好:

  • 取得您需要的確切內容:您的應用程式可以要求它現在所需的資料,一絲不多,一絲不少。 這就像去自助餐,挑選你真正想吃的食物,而不是被提供一份巨大的固定套餐,其中大部分食物會被浪費。 這可讓您的應用程式更快,因為它會下載較少的數據。

  • 一個要求而不是多個要求:需要來自多個位置的資訊嗎? GraphQL 可讓您只需對一個端點發出一次請求即可取得所有資料,而不是向 5 個不同的端點發出 5 次請求。 這就像有一個人為你採購所有的商品,而不是讓你跑五趟不同的商店。

  • 使用較佳的工具減少錯誤:GraphQL 隨附的工具可協助您在撰寫程式碼時捕捉錯誤,而不是在應用程式執行時才發現錯誤。 這就像在您鍵入時使用拼字檢查,而不是在您發佈文件後才發現錯字。

使用 GraphQL 和 JavaScript 建置時,您可能會使用下列其中一個熱門工具:

  • Apollo 用戶端:最廣泛使用的 GraphQL 用戶端,可搭配 React、Vue、Angular 和純 JavaScript 使用。
  • URQL:具有良好效能的輕量型替代方案。
  • Relay:由創建 GraphQL 的 Facebook 建立,最適合用於大型 React 應用程式。

GraphQL 應用程式的 Azure 服務

根據您的特定案例選擇您的方法:

如果您想要... 然後,您應該... 使用這些 Azure 服務
將現有的 GraphQL 應用程式帶入 Azure 部署應用程式而不變更程序代碼 Azure App Service 或 Azure Container Apps
將 GraphQL 新增至現有的數據 使用最少編碼為您的數據建立 GraphQL 端點 數據 API 產生器
建置 GraphQL API 層 透過現有的 API 建立統一的 GraphQL 介面 使用 GraphQL 轉換的 Azure API 管理

在 Azure 上裝載 GraphQL 應用程式

根據您要建置的應用程式類型而定,您有幾個好選項:

  • App Service:這就像傳統的Web主控服務,但具有額外的功能。 它非常適合大部分需要伺服器的 JavaScript 應用程式。

  • 容器應用程式:如果您的應用程式封裝在容器中(例如 Docker),此服務會讓執行並調整它們變得容易。

GraphQL 應用程式的數據記憶體

GraphQL 必須連線到您的數據。 Azure 提供數種方式來執行此動作:

  • 將您的資料庫變成 GraphQL API:「資料 API 產生器」工具可以自動建立 GraphQL 端點(您的應用程式可以傳送 GraphQL 要求的 URL)從現有的資料庫 - 不需要撰寫程式代碼!

  • 儲存您的資料:Azure 會針對不同的需求提供資料庫:

    • SQL Database:適用於傳統數據表型數據
    • Cosmos DB:提供彈性、可擴展的資料儲存,不需要固定的模式。

保護 GraphQL 應用程式

  • 使用者登入和安全性:Azure 的身分識別平臺可協助您將登入功能新增至應用程式,讓只有正確的人員可以存取 GraphQL 數據。
  • 角色型存取:完全控制哪些使用者可以透過 GraphQL 端點查詢或修改哪些數據。
  • API 保護:通過新增速率限制和監控來防止對 GraphQL API 的濫用。

為現有數據建立 GraphQL API

Azure 中已經有數據,而且想要使用 GraphQL 進行存取嗎? 有簡單的方法可以執行這項作:

  • API 管理:此服務可以在您現有的 API 或數據源前面建立 GraphQL 層。 它就像將 GraphQL 翻譯工具新增至原本不會說 GraphQL 的系統。

  • 數據 API 產生器:此工具會自動從您的資料庫建立 GraphQL 端點。 這是將 GraphQL 新增至您現有資料的最快速方式 - 只要連接到您的資料庫,它就會自動幫您完成工作。

簡單範例:建立產品資料庫的 GraphQL API

以下是程式在簡單方面的運作方式:

  1. 您有資料庫,包含產品資訊(名稱、價格、描述)
  2. 您設定資料 API 產生器以連線到資料庫
  3. 數據 API 產生器會自動建立 GraphQL 端點
  4. 您的 JavaScript 應用程式現在可以進行 GraphQL 查詢,例如:
{
  products(where: { price_lt: 50 }) {
    name
    price
    description
  }
}

此查詢將取得所有低於 $50 的產品,並只顯示其名稱、價格和描述。

協助您開始使用的資源

如果您想要深入瞭解或開始使用 Azure 上的 GraphQL 建置,以下是一些實用的資源:

後續步驟