2023/1/14 by Andreas Marek、Donna Zhou
我們很高興宣布已貢獻的 GraphQL 自訂標量 規格的官方主頁在 scalars.graphql.org。
歡迎您貢獻自訂標量規格(簡稱「規格」)。一旦您的規格合併,它將會寄存於 scalars.graphql.org/<GitHub-username>/<specification-name>
。請參閱 貢獻指南,了解如何貢獻。
我們第一個已貢獻的規格是 DateTime。您可以在您的 GraphQL 架構中使用內建 @specifiedBy
指令,將使用者導向規格的網址。
scalar DateTime @specifiedBy(url: "https://scalars.graphql.org/andimarek/date-time")
自訂標量從第一天起就已成為 GraphQL 規格的一部分。它們擁有獨特的能力,可以透過自訂類型來擴充 GraphQL 類型系統。雖然自訂標量很強大,但對 API 的使用者來說,它們更像是一個黑盒子。
最初,消費者很難理解自訂標量,因為 GraphQL 架構除了名稱之外,沒有提供任何資訊。例如,很難理解 DateTime
自訂標量的確切格式。也很難知道 API A 中的 DateTime
自訂標量是否與 API B 中的 DateTime
完全相同。
我們在一段時間前新增了內建 @specifiedBy
指令,它會指定自訂標量規格的 URL。這提供了一個記錄自訂標量的標準方式。@specifiedBy
指令也可以內省。
不過,我們後來發現這還不夠。撰寫自訂標量規格和託管規格的負擔,留給每個 API 自行解決。
透過自訂標量規格專案,我們提供撰寫自訂標量規格的範本,並在 GraphQL Foundation 擁有的網域 scalars.graphql.org 上託管規格。這大幅減少了清楚記錄和分享自訂標量規格的負擔。
我們希望這能建立一個清楚記錄自訂標量的生態系統,並消除重複發明熱門標量的需求。最終,夠熱門的自訂標量在實務上將與內建標量沒有什麼不同,並提升 GraphQL 類型系統。
請參閱 貢獻指南,了解如何貢獻自訂標量規格。
如果您有任何意見或問題,請在 graphql-scalars GitHub 儲存庫 中開啟一個議題。