Open3

Pothos GraphQL を調べる & 試す

Masayuki IzumiMasayuki Izumi

モチベーション

  • プログラマブルにスキーマに干渉しやすい Code-First Approach な GraphQL スキーマビルダーを探していた
  • class + decorator ベースな TypeGraphQL や NestJS は見やすいが、resolver の型制約を厳密にするのが難しい
  • なので GraphQL Nexus を使っていたが、最近開発が活発ではなさそう

Alternative を探している中で Pothos GraphQL を見つけたので、調べてみる。

Masayuki IzumiMasayuki Izumi

ファースト・インプレッション

  • Nexus と比較して、
    • コード生成を挟まない分、体験はよさそう
      • (Nexus では生成した型定義を LSP が読むまでのラグが気になっていた)
    • DSL はより複雑な印象を受ける
  • いいところ
    • The Guild がスポンサー
    • Prisma もスポンサー(Nexus は…?)
  • 懸念
    • 基本機能が揃っているか(GraphQL の仕様をどこまでカバーしてるか)
    • コード生成なしで、どこまでちゃんと型の制約が効くか
    • 拡張性
      • middleware or/and plugin
      • 型の拡張(field resolver をあとから足せるか etc.)

ちなみに読み方はたぶん「ポトス」。よく見かける観葉植物のアレ。