Open3
Pothos GraphQL を調べる & 試す
モチベーション
- プログラマブルにスキーマに干渉しやすい Code-First Approach な GraphQL スキーマビルダーを探していた
- class + decorator ベースな TypeGraphQL や NestJS は見やすいが、resolver の型制約を厳密にするのが難しい
- なので GraphQL Nexus を使っていたが、最近開発が活発ではなさそう
Alternative を探している中で Pothos GraphQL を見つけたので、調べてみる。
ファースト・インプレッション
- Nexus と比較して、
- コード生成を挟まない分、体験はよさそう
- (Nexus では生成した型定義を LSP が読むまでのラグが気になっていた)
- DSL はより複雑な印象を受ける
- コード生成を挟まない分、体験はよさそう
- いいところ
- The Guild がスポンサー
- Prisma もスポンサー(Nexus は…?)
- 懸念
- 基本機能が揃っているか(GraphQL の仕様をどこまでカバーしてるか)
- コード生成なしで、どこまでちゃんと型の制約が効くか
- 拡張性
- middleware or/and plugin
- 型の拡張(field resolver をあとから足せるか etc.)
ちなみに読み方はたぶん「ポトス」。よく見かける観葉植物のアレ。
"backing models" というコンセプトについて。
Nexus にも Source types という同様のことを実現できる機能があるが、Pothos のほうがうまく言語化されまとまっている印象。