スキーマ
スキーマはGraphQLサーバーの機能を定義します。 データベースのスキーマ定義のように、APIが返すことのできる構造と型を記述します。
型
型は、GraphQLスキーマの主要な構成部品です。 APIへ渡すパラメータ、及び、APIから取得できるデータの種類を定義します。
ルートタイプ
GraphQLスキーマには、最大で3つの特別な ルートとなる型 が存在します。 これらはクエリが持つ可能性のあるルートフィールドを定義します。これらはすべてオブジェクト型 ですが、機能的には単なるオブジェクト型と異なる特別な位置付けとなります。
クエリ
すべての GraphQL スキーマはQuery
タイプを持つ必要があり、APIが提供するクエリが含まれます。
クエリは引数を取り、決まった結果を返すRESTリソースのようなものと考えることができます。
ミューテーション
Query
型とは対照的に、Mutation
型のフィールドはサーバー上でデータを変更することができます。
type Mutation {
createUser(name: String!, email: String!, password: String!): User
updateUser(id: ID, email: String, password: String): User
deleteUser(id: ID): User
}
サブスクリプション
Subscription
型のフィールドは、一回限りのレスポンスを返すのではなく、リアルタイムでの更新を伴うようなレスポンスのストリームを返します。