リゾルバとは
GraphQLでこのデータをくださいとリクエストが来た時、実際に取ってくる処理のこと
{
user:(id:1){
name
posts {
title
}
}
}
バックエンド側で「userを取ってくる処理」「postsを取ってくる処理」をそれぞれ書く必要がある。これがリゾルバ:
const resolvers = {
// user(id: 1) が来たらDBからユーザーを探す
user: (args) => {
return db.users.find(u => u.id === args.id);
},
// そのユーザーのpostsが来たら投稿を探す
posts: (parent) => {
return db.posts.filter(p => p.user_id === parent.id);
},
};
GraphQLを導入すると、フィールドごとにこのリゾルバを書く必要がある。データが少ないアプリでこれをやるのは手間に対してメリットが薄い。