JSONをGraphQL型定義に変換する生成器
ガイド
JSONをGraphQL型定義に変換する生成器
任意のJSONオブジェクトまたは配列を貼り付け、すぐにGraphQLスキーマ定義言語(SDL)ドキュメントを受信します。生成器はJSONツリーを走査し、スケーラー型を推定し、ネストされたオブジェクトを名前付けて、配列-of-オブジェクトのバリエーションを統合し、オプションのルートタイプを出力します。 Query typeを出力することで、結果はApollo、Yoga、Mercurius、またはgraphql-goのようなサーバーに直接投入できるようになります。
決定論的なJSONからGraphQL SDLコンバーターの重要性
手動でサンプルペイロードからGraphQL型を書くことは、機械的ではあるが誤りを生みやすいです。1つのnullのミス、不一致 Int vs Float、またはリスト要素の非nullマーカーを忘れることで、すべてのダウンストリームクライアントのコード生成が破綻します。ルールに基づいた生成器は、同じJSONサンプルを常に同じように処理し、APIの変更時に再生成しても安全です。
使用方法
- 入力ボックスにJSONオブジェクトまたは配列を貼り付け、または 例を試してみてください。 をクリックして代表的なペイロードを読み込みます。
- [名前]を設定してください ルートタイプ名 他のものではなく
Root. - [ブラウザのchrome]を選択し、 フィールドのnull可能性 戦略 – 必須フィールドに対して厳密(
!)またはプロトタイピング用にすべてのnull可能性。 - トグル IDの検出 を自動的に
idと*IdキーをGraphQLIDスケーラーに昇格させる。 - オプションでルート
Queryタイプを含める。単一エンティティとリストエンティティフィールドを含む。 - SDLをコピーまたは
schema.graphql.
機能
- スケーラー推定 – 決定論的に区別する。
String,Int,Float,Booleanと、IDネストされたオブジェクトタイプ - – フィールドキーからPascalCaseを使用して、すべてのネストされたオブジェクトに別名のタイプを生成する。 オブジェクトの配列の統合
- – 配列内のすべての項目にフィールドを統合し、オプションフィールドを適切にマークする。 null可能性と非null可能性の切り替え
- – 严格的な マーカーを出力するか、プロトタイピングのためにすべてをnull可能性に緩和する。
!自動ID検出 - – styleキーを にアップグレードする。
id,userId,orderIdルートクエリのフレームワークIDスケーラーに昇格させる。 - – シングルおよびリストリゾルバー署名を含むオプション。 – あなたのJSONはブラウザに留まっているため、センシティブなペイロードでも安全です。
type Query { ... }型推定ルール - クライアントサイドのみ 整数は
にマップされ、小数部分を持つ数値は
- にマップされます。フィールドが両方として見られる場合、
Intにプロモートされます。Float文字列はFloat. - にマップされます。ID検出が有効な場合、キーが
Stringまたはidで終わる場合はIdになります。ID. - ブール値は
Boolean. nullにマップされ、値がnullである場合、フィールドをnull可能性としてマークし、生成されたSDLは末尾の!.- をスキップします。
[String]空の配列は - にデフォルトされます。なぜなら、安全に推定できる要素型が存在しないからです。
オブジェクトの配列は1つの名前付きタイプに統合され、すべての要素に欠落するフィールドは自動的にnull可能性になります。
- 誰がそれを使用していますか?
- バックエンドエンジニアがRESTエンドポイントまたはJSONファイルをGraphQLゲートウェイにラップする場合。
- フロントエンド開発者がAPIが準備される前に、フィクスチャーペイロードを使ってスキーマをプロトタイピングする場合。
- API設計者が第三者の応答形状をタイプ付き契約として記述する場合。
よくある質問
-
コード生成パイプラインが安定したJSONサンプルから再現可能なSDLアーテファクトを必要とする場合。
GraphQL SDLとは?
-
スキーマ定義言語(SDL)は、APIが公開する型、フィールド、クエリ、およびミューテーションを記述するGraphQLのテキストベースの構文です。type、scalar、enum、inputなどのキーワードを使用して、サーバーが返すデータの形状とクライアントが呼び出す操作の形状を宣言します。
なぜGraphQLは!(非null)マーカーを使用するのですか?
-
タイプの後にエクスクラメーションマークをつけることで、フィールドがnullになることは決してないことを宣言します。これにより、クライアントはnullチェックの防御コードをスキップでき、サーバーが必須値が欠落している場合に即座にエラーを返すことができます。そうでなければ、GraphQLはすべてのフィールドをデフォルトでnull可能性として扱います。
フィールドがIDスケーラーを使用すべき場合とStringを使用すべき場合をどう判断しますか?
-
IDスケーラーは、オブジェクトを再取得またはキャッシュするために使用される暗号化識別子(主キー、UUID、スラグ、外キー)に予約されています。これは文字列としてシリアル化されますが、識別性を示すため、ApolloやRelayなどのクライアントが正常なキャッシュを構築できるようにします。
SDLでオブジェクトのリストは、[Order!]!のように書かれます。内側の!はリスト内の各要素が非nullであることを意味し、外側の!はリスト自体が非nullであることを意味します。JSONサンプルから正しい要素型を推定するには、配列内のすべての項目にフィールドの形状を統合する必要があります。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
