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。

関連