Graphql基本功


GraphQLの概要


GraphQLはAPI用のクエリー言語であり、タイプシステムを使用してクエリーを実行するサーバ側タイプである.
GraphQLはフロントだけを知ることはできません.フロントはサーバにデータを要求する方式なので、サーバもGraphQLを知っているはずです.
GraphQLサービス定義Typeおよびfieldは、各タイプのフィールドが関数によって実装される.

GraphQLサービスの例

GraphQL 서비스 예시
type Query {
	me: User
}
type User {
	id: ID
    name: String
}
データのリクエストと再受信時に、リクエストされたデータが何であるか、リクエストされたデータがどのような形式であるかを明確に知るために、上記のコードに従って宣言します.
検証:クエリーを要求する場所に適切なタイプまたは実際に存在するデータが要求されているかどうかを確認します.

クエリーの例

  요청
{
	me {
    	name
    }
}

結果

  응답
{
	"me": {
  		"name": "Luke Skywalker"
  	}
}

GraphQLの使い方



これは以前GraphQLを使用していたSWAPIです.
GraphQLの利点は、1回のリクエストで複数のリクエストが必要なデータが得られることです.(クエリのフィールドはオブジェクトを参照できます.)
特定のデータはArgumentパラメータ(expersonID)で問い合わせることができます.
GraphQLでクエリーする場合、ctrl+space barを押すとクエリー可能なデータのリストが得られます.#、スズ処理を行うことができる.

Alias(別名)


クエリーのフィールド名が同じで、異なるパラメータをクエリーする場合に使用します.
person (personID: 1) {}
person (personID: 2) {}
上記コードに示すように"Fields \"person\" conflict because they have differing arguments. Use different aliases on the fields to fetch both if this was intentional.",という名前のエラーが発生しました.
これを防ぐためにPerson 1,Person 2の2つの別名を与えることができる.

Fragment


繰り返しフィールドセット(繰り返し使用可能な単位)
宣言:フィールドセットを持つオブジェクトの断片[名前]{}
使用時:.[名前](拡張演算子を使用)
Reactでは、クリップを複数のコンポーネントにカプセル化するときに、特定のタグに置き換えられないビームとして使用します.

分割での変数の使用


これまで,query쿼리 이름を省略した匿名クエリがクエリの前に用いられてきた.
ただし、Fragmentで変数を使用する場合は、queryと名前を宣言する必要があります.
ビット目のクエリーはfirstというパラメータに$amount値を加え、対応するフィルムデータを何個入れるかを指定するクエリーです.amountに2つあげると2つの値が出ます.

タスク名(operation)

queryのキーワードとqueryの名前を省略した単出構文が使用されますが、デバッグまたはサーバ側レコードにクエリー名を指定することは便利です.
ワークタイプはquery、変異、サブスクリプションです.
タスクに関数名のような名前を付けます.

変数#ヘンスウ#

  • クエリは文字列を介して渡されます.
    (転送方法を知りたい場合は、プロジェクトフォルダのindex.htmlファイルでgraphQLFFetcher関数を使用してgraphQLParamsをalertとして印刷できます)
  • GraphQL動的クエリが必要
  • ex)ユーザーは、ドロップダウン方式、検索フィールド、フィルタリングなど、スターウォーズのエピソードに興味のある動的な方法を選択できます.
  • GraphQLは、動的値を提供する別の伝達方法변수(割り当て可能なデフォルト値)
  • を提供する.
  • GraphQLでは、下部にquery変数があります.
    query文では、QUERY VARIABLESに変数値を指定するのではなく、変数値を入力できます.
  • 指示文


    ifドアがfalseの場合、filmConnetionのデータは表示されません.
    withFilmの値をtrueに変更すると、映画データも表示されます.
    @include(if:Boolean):このフィールドは、パラメータがtrueの場合にのみ結果に含まれます.
    @skip(if:Boolean):パラメータがtrueの場合、このフィールドはスキップされます.

    整理する


    /GraphQLクエリー要求と結果JSON形式の同じ形式クエリーフィールドオブジェクト参照(マルチスプライトX)/パラメータ/重複するフィールドセットを別名で分割/変数伝達可能変数/命令動的クエリー方法/@inclue,@skip