🎃
GraphQLクエリ言語(GraphQLスキーマ定義言語)
概要
以下の記事でGraphQLサーバを立てるにあたり、GraphQLクエリ言語についてまとめる。GraphQL初心者向けドキュメント。
GraphQLクエリ言語とは
GraphQLクエリ言語(GraphQLスキーマ定義言語)は GraphQL 型システムで利用するスキーマを定義するための言語。
GraphQL クエリ言語は基本的にオブジェクトのフィールドを選択するもの。
まず以下のスキーマを定義(①)し、スキーマのフィールドを選択(②)することでレスポンス③を得る。
① スキーマ(サーバ側で定義)
{
"data": {
"hero": {
"name": "R2-D2",
"appearsIn": [
"NEWHOPE",
"EMPIRE",
"JEDI"
]
}
}
}
② リクエスト(クライアント → サーバ)
{
hero {
name
appearsIn
}
}
③ レスポンス(サーバ → クライアント)
{
"data": {
"hero": {
"name": "R2-D2",
"appearsIn": [
"NEWHOPE",
"EMPIRE",
"JEDI"
]
}
}
}
GraphQLクエリ言語の特徴
以下のような特徴を持つ。
- int,string,float, booleanなど一般的な型が使える
- 特別な型としてQuery, Mutationがある
- インターフェースなども使える
- !はNull許容または0個許容
- パラメータごとに引数を渡すこともできる
引数を渡すクエリ
{
human(id: "1000") {
name
height(unit: FOOT)
}
}
レスポンス(id=1000の人のデータのみを、身長をフィート表記にして返している)
{
"data": {
"human": {
"name": "Luke Skywalker",
"height": 5.6430448
}
}
}
もっと詳しく
さらに詳しくは以下
Discussion