Server-Side: Schema & Resolvers

型定義(スキーマ)こそが契約書。サーバーとクライアントはこれを守る。

Resolver
クエリに対して、実際にデータをどこから取ってくるか(DB? マイクロサービス?)を書く関数。

1. The Schema (SDL)

schema.graphql
type User {
id: ID!
name: String!
email: String
posts: [Post]
}
type Post {
title: String!
content: String
}
type Query {
user(id: ID!): User
}

2. The Resolvers

スキーマの裏側で動く関数。実際にデータをDBから取ってくる役割。

Federation (BFF Pattern):

「User Resolver」は認証サービスへ、「Post Resolver」はCMSへ。GraphQLサーバーはバラバラのバックエンドを1まとめにするゲートウェイとして機能する。