重點摘要
- 01使用官方 graphql.js 解析器格式化查詢、變更、訂閱和 SDL 結構描述。
- 02驗證語法並報告錯誤的確切行和列 — 無需結構描述。
- 03格式化時 GraphQL 註解 (#) 被移除;為您想保留的文件使用說明字串。
- 04完全在您的瀏覽器中執行 — 內部 API 查詢和專專有結構描述保持私密。
為什麼格式化 GraphQL 文件?
GraphQL 查詢會迅速變得複雜 — 嵌套片段、內聯變數、多個操作定義、具有介面和指令的 SDL 類型定義。一致的格式化可加快同行評審,並更容易一目瞭然地發現缺少的結束括號或參數不匹配。
格式化工具使用參考 graphql.js 解析器 — GraphQL 規範隨附的相同解析器。這表示您在此處得到的標準格式化與 Prettier 的 GraphQL 外掛和大多數 GraphQL 工具產生的相符。在此解析乾淨的任何內容都將在 Apollo、Relay 和 graphql-request 中解析乾淨。
如何格式化 GraphQL 文件
- 01
貼上您的 GraphQL
將查詢、變更、訂閱、片段或 SDL 結構描述定義貼到輸入面板。
- 02
點擊 [格式化]
解析器使用標準縮排發出文件 — 2 個空格縮排、每行一個欄位、一致的引數對齊。結果出現在輸出面板中。
- 03
選擇性驗證
點擊 [驗證] 以確認文件解析而不產生格式化的輸出。結果是確認或帶有行和列號的語法錯誤清單。
- 04
複製結果
點擊 [複製] 以取得格式化的文件。貼到您的程式碼庫、PR 說明或文件檔案。
對內部結構描述和 API 查詢安全
graphql.js 解析器完全在您的瀏覽器中執行。沒有操作文字或結構描述定義被傳送到任何伺服器。這使得格式化參考私密欄位名稱或您不想向第三方工具公開的內部類型系統的查詢是安全的。
此處驗證只是語法 — 該工具檢查文件是否為有效的 GraphQL 文件,但不檢查欄位名稱是否存在於真實結構描述中、變數是否符合引數類型,或指令是否正確套用。結構描述感知驗證需要將目標結構描述與文件一起載入。
GraphQL 格式化工具常見問題
GraphQL 格式化對結構描述進行驗證嗎?
不會 — 只驗證語法。檢查欄位和引數是否存在需要目標結構描述。此工具確認文件是有效的 GraphQL 文件,僅此而已。
我的 GraphQL 中的註解會保留嗎?
不會。以 # 開頭的行被解析器移除。為應保留格式化的文件使用三引號說明字串。
支援哪個 GraphQL 規範版本?
2021 年 10 月規範,包括 OneOf 輸入物件和 @specifiedBy 指令。
我可以格式化 SDL 結構描述定義,而不只是操作文件嗎?
是的。類型定義、介面宣告、聯合類型、列舉、指令和說明都透過格式化工具正確往返。
查詢或結構描述上傳到任何地方嗎?
不會。graphql.js 解析器完全在您的瀏覽器中執行 — 無內容離開您的裝置。