2017-08-18 4 views
-1

GraphQLスキーマで特殊文字を有効にする方法はありますか(フィールド名には/,:@など)。GraphQLスキーマの特殊文字

もしそうでなければ、node.jsコード(https://github.com/graphql/graphql-js)を変更してそのような機能を実現するには、比較的簡単な方法は何でしょうか?

+0

なぜ説明する。 – otissv

+0

ありがとう、@ tissv。はい - 悪い、悪いstackoverflow-ers! ;) – szymon

+0

@otissv Downvotingは、まったくそれを意味するものではなく、貧弱な研究や不明な質問のようなさまざまなことを意味する可能性があります。彼らはこのサイトで十分にdownvotingではありません。 –

答えて

1

これに反対することをお勧めします。 graphql-jsは、graphql仕様書に記載されている文法形式に従います。このような変更は仕様からの脱却となり、スキーマはもはやgraphqlツールでは動作しなくなります。これらの文字はgraphqlで特別な意味を持つため、パーサーは無効なスキーマをスローします。

GraphQLスペック

Punctuator ::の1! $()...:= @ [] {| }
構造を記述するために、GraphQLドキュメントに句読点が含まれています。 GraphQLはデータ記述言語であり、プログラミング言語ではないため、GraphQLには数学的表現を記述するのによく使われる句読点がありません。

http://facebook.github.io/graphql/#sec-Punctuators

::/[_ A-ZA-Z] [_ 0-9A-ZA-Z] */
GraphQLクエリ文書は、名前のものに満ちている:操作、フィールド、引数、ディレクティブ、フラグメント、および変数。すべての名前は同じ文法形式に従わなければなりません。 GraphQLの名前は大文字と小文字を区別します。つまり、名前、名前、名前はすべて異なる名前を参照しています。下線は重要です。つまり、other_nameとothernameは2つの異なる名前です。 GraphQLの名前は、できるだけ多くの他のシステムとの相互運用をサポートするために、可能な文字のこのASCIIサブセットに制限されています。ダウン私はあなたが、これはなくて良いアイデアではありません、なぜあなたが知っていることを示すことによって、優れた感じるようになったとして自分自身を誇りに感じて願って、参考にして教育する悩まずに、これを投票しているものについては

http://facebook.github.io/graphql/#sec-Names

+0

私はあなたの応答に感謝します!私は確かに私の目標を再考する必要がありますが、私の基本的な意図は、(https://medium.com/@oleg.ilyenko/graphql-namespaces-proposal-2a097ce81d2aの行の周りの緩やかな)名前空間メカニズムのいくつかの形式をサポートすることです。 "dc:title"や "@id"のような特殊キーを含むレスポンスを生成する可能性があります。これは、GraphQLをリンクされたデータに適用する際に便利です。 – szymon

+0

'authors/create'のような名前空間には、独自のパーサを書く必要があります。それは価値がなく、graphqlの残りの部分と互換性がありません。私がやる方法は、キャメルケースを使用する型名のプレフィックスメソッドです(例: 'authorsCreate')。 '@'記号は特殊文字であるため、 ':'も使用できます。'/'は現在の仕様では許可されていないので、良い候補です。しかし、あなたが質問に答えた場合は、現在のパーサー – otissv

+0

@szymonを壊さないように '_ 'を使用することができます。 – otissv