1/14/2023作成者Andreas Marek、Donna Zhou
提供されたGraphQL カスタムスカラー仕様の公式リポジトリをscalars.graphql.orgで公開できたことを大変嬉しく思います。
カスタムスカラー仕様(略して「仕様」)へのご貢献を歓迎します。あなたの仕様がマージされると、scalars.graphql.org/<GitHub-username>/<specification-name>
でホストされます。貢献ガイドで、貢献方法をご覧ください。
最初の提供された仕様はDateTime用です。GraphQLスキーマで組み込みの@specifiedBy
ディレクティブを使用して、ユーザーに仕様のURLを指定できます。
scalar DateTime @specifiedBy(url: "https://scalars.graphql.org/andimarek/date-time")
カスタムスカラーは、GraphQL仕様の初日から存在しています。これらは、カスタム型を使用してGraphQL型システムを拡張できるという独自の機能を持っています。カスタムスカラーは強力ですが、APIの利用者にとってはブラックボックスのようなものでした。
当初、GraphQLスキーマは名前以外に情報を含んでいなかったため、利用者がカスタムスカラーを理解することは非常に困難でした。例えば、DateTime
カスタムスカラーの正確な形式を理解することは困難でした。また、API AのDateTime
カスタムスカラーがAPI BのDateTime
と全く同じであるかどうかを知ることも困難でした。
しばらく前に、カスタムスカラーの仕様のURLを割り当てる組み込み@specifiedBy
ディレクティブを追加しました。これにより、カスタムスカラーを文書化する標準的な方法が提供されます。@specifiedBy
ディレクティブはイントロスペクション可能です。
しかし、その後、これだけでは不十分であることを学びました。カスタムスカラー仕様を作成し、それらをホストする負担は、各API自体が解決する必要がありました。
カスタムスカラー仕様プロジェクトでは、カスタムスカラー仕様を作成するためのテンプレートを提供し、GraphQL Foundationが所有するドメインscalars.graphql.orgで仕様をホストします。これにより、カスタムスカラー仕様を明確に文書化し、共有するための労力が大幅に削減されます。
これは、明確に文書化されたカスタムスカラーのエコシステムを可能にし、人気のあるカスタムスカラーを何度も再発明する必要性をなくすことを願っています。最終的には、十分に人気のあるカスタムスカラーは、組み込みのものと事実上区別がつかなくなり、GraphQL型システムを高度化します。
貢献ガイドで、カスタムスカラー仕様への貢献方法をご覧ください。
コメントやご質問がある場合は、graphql-scalars GitHubリポジトリで問題を提起してください。