GraphQL 標誌GraphQL

描述您的資料

type Project {
name: String
tagline: String
contributors: [User]
}

詢問您要的內容

{
project(name: "GraphQL") {
tagline
}
}

取得可預測的結果

{
"project": {
"tagline": "A query language for APIs"
}
}
GraphQLConf logo
由 GraphQL 基金會舉辦的官方 GraphQL 會議2023 年 9 月 19 日至 21 日 • 加州舊金山灣區

您的 API 查詢語言

GraphQL 是 API 的查詢語言,也是用於以您現有資料滿足這些查詢的執行時間。GraphQL 提供 API 中資料的完整且可理解的描述,讓客戶端能夠確切地詢問他們需要什麼,而且不會更多,讓 API 隨著時間推移更容易演進,並啟用強大的開發人員工具。

詢問您需要的內容,
確切地取得

將 GraphQL 查詢傳送至您的 API,並確切地取得您需要的內容,不多也不少。GraphQL 查詢總是傳回可預測的結果。使用 GraphQL 的應用程式快速且穩定,因為它們控制取得的資料,而不是伺服器。

取得多項資源
在單一要求中

GraphQL 查詢不僅存取單一資源的屬性,還能順利追蹤它們之間的參考。雖然典型的 REST API 需要從多個 URL 載入,但 GraphQL API 會在單一要求中取得您的應用程式所需的所有資料。使用 GraphQL 的應用程式即使在行動網路連線速度較慢的情況下也能快速運作。

描述可能性
使用類型系統

GraphQL API 是以類型和欄位組織,而不是端點。從單一端點存取資料的完整功能。GraphQL 使用類型來確保應用程式只詢問可能性,並提供明確且有用的錯誤。應用程式可以使用類型來避免撰寫手動剖析程式碼。

使用
強大的開發人員工具

在不離開編輯器的狀況下,確切知道可以從 API 請求哪些資料,在傳送查詢之前突顯潛在問題,並利用進階的程式碼智能。GraphQL 讓您可以輕鬆建置強大的工具,例如 GraphiQL ,方法是利用您的 API 類型系統。

進化您的 API
無需版本

在不影響現有查詢的狀況下,新增欄位和類型至您的 GraphQL API。過時的欄位可以標示為已棄用並從工具中隱藏。透過使用單一演化版本,GraphQL API 能讓應用程式持續存取新功能,並鼓勵更簡潔、更容易維護的伺服器程式碼。

自備
資料和程式碼

GraphQL 在您的整個應用程式中建立統一的 API,不受特定儲存引擎的限制。撰寫 GraphQL API,利用您現有的資料和程式碼,搭配許多語言中提供的 GraphQL 引擎。您提供類型系統中每個欄位的函式,而 GraphQL 會以最佳並行度呼叫它們。

誰在使用 GraphQL?

自 2012 年以來,Facebook 的行動應用程式一直由 GraphQL 提供支援。GraphQL 規範於 2015 年開放原始碼,現已在許多環境中提供,並由各種規模的團隊使用。

更多 GraphQL 使用者