GraphQL
クライアントが必要なフィールドだけを問い合わせるAPIクエリ言語。_moc-web-infra
特徴
- 1つのエンドポイントでスキーマ駆動。over-fetching/under-fetching を避ける。CQRS の参照系と親和的。
- ページングは Cursor Connections 仕様(Relay)。
- 落とし穴: クエリ引数で配列を渡す際、テンプレート文字列に配列をそのまま展開すると
"apple,grape"になってしまうので["apple","grape"]形式に整形する。
RDBアダプタ / サーバ
- Prisma: node.js界のActiveRecord的ORM。スキーマからクライアント生成。
- Hasura: RDBに GraphQL API を生やすサーバ。Hasura Cloud は個人開発に安価。「EasyのHasura、SimpleのPrisma」。
対比
- tRPC: RESTfulでGraphQLのように必要フィールドだけフェッチ。サーバ側で zod によりインターフェース定義、型がe2eで通る。
- grpc: バイナリ・契約駆動のRPC。