GraphQL - 架構



GraphQL 是一種規範,描述了 GraphQL 伺服器的行為。它是一套關於如何處理請求和響應的指南,例如支援的協議、伺服器可以接受的資料格式、伺服器返回的響應格式等。客戶端向 GraphQL 伺服器發出的請求稱為查詢。GraphQL 的另一個重要概念是其傳輸層無關性。它可以與任何可用的網路協議一起使用,例如 TCP、Websocket 或任何其他傳輸層協議。它也與資料庫無關,因此您可以將其與關係型資料庫或 NoSQL 資料庫一起使用。

GraphQL 伺服器可以透過以下三種方法中的任何一種進行部署:

  • 連線資料庫的 GraphQL 伺服器
  • 整合現有系統的 GraphQL 伺服器
  • 混合方法

連線資料庫的 GraphQL 伺服器

這種架構具有一個集成了資料庫的 GraphQL 伺服器,並且經常可以用於新專案。在收到查詢時,伺服器讀取請求有效負載並從資料庫中獲取資料。這稱為解析查詢。返回給客戶端的響應遵循官方 GraphQL 規範中指定的格式。

GraphQL Server Connected Database

在上圖中,GraphQL 伺服器和資料庫整合在一個節點上。客戶端(桌面/移動)透過 HTTP 與 GraphQL 伺服器通訊。伺服器處理請求,從資料庫中獲取資料並將其返回給客戶端。

整合現有系統的 GraphQL 伺服器

這種方法對於擁有遺留基礎設施和不同 API 的公司很有幫助。GraphQL 可用於統一現有系統中的微服務、遺留基礎設施和第三方 API。

GraphQL Server Integrating Existing Systems

在上圖中,GraphQL API 充當客戶端和現有系統之間的介面。客戶端應用程式與 GraphQL 伺服器通訊,後者依次解析查詢。

混合方法

最後,我們可以結合上述兩種方法來構建 GraphQL 伺服器。在此架構中,GraphQL 伺服器將解析收到的任何請求。它將從連線的資料庫或整合的 API 中檢索資料。這在下圖中表示:

GraphQL Hybrid Approach
廣告