Help us understand the problem. What is going on with this article?

GraphQLのリゾルバ(Resolver)とは

リゾルバとは

GraphQLのスキーマと型定義でも触れたとおり、スキーマ定義にてクライアントが操作できるクエリや様々な型を定義しています。ただし、スキーマはあくまで定義のみで実際のデータ操作は行いません。実際のデータ操作を行うのがリゾルバというものになります。リゾルバの実態は特定のフィールドのデータを返す関数(メソッド)です。リゾルバはGraphQLサーバー開発者が提供する必要があります。
例えば、以下のようなスキーマ定義があった場合、type Queryにある通りID型を引数にとりBook型を返すbookByIdという名前の関数を用意する必要があります。

schema.graphqls
type Book {
    id: ID
    name: String
    pageCount: Int
    author: Author
}

type Author {
    id: ID
    firstName: String
    lastName: String
}

type Query {
    bookById(id: ID): Book
}

上記例のリゾルバの実装は「Spring BootでGraphQLを実装する」のリゾルバ(Resolver)の作成にある通りです。
また、全てのフィールドに対応するリゾルバが必要です。例えば、以下のようなスキーマ定義があった場合、ID型を引数にとりBook型を返すbookByIdという名前の関数と、引数なしでUser型のリストを返すusersという名前の関数が必要です。

schema.graphqls
type Book {
    id: ID
    name: String
    pageCount: Int
    author: Author
}

type Author {
    id: ID
    firstName: String
    lastName: String
}

type User {
    id: ID
    name: String
}

type Query {
    bookById(id: ID): Book
    users: [User]
}

以上です。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした