2019-10-22 GraphQL を触ってみる
express + express-graphql
なるほど
express + apollo
なるほど
DSL で query を定義すると、それに合わせてデータが降ってくるので fetch してねって感じか
users(limit: Int): [User] とかまさにそう
Controller の代替になる?
DSL から TypeScript の type を生成する君ほしい
DSL から mock 作る君がほしい
DSL から TypeScript のコードを生成してくれる君
apollo との比較が気になる
yarn graphql-codegen init でターミナルからぽちぽちできる
package.json が更新されるので yarn を実行して依存ライブラリを入れること
プラグイン一覧
frontend と backend 向けにそれぞれ生成できる
frontend は operations (query とか mutation) の型定義
backend は resolvers の型定義
ApolloServer の typeDefs には普通に文字列として渡せばいい感じかな
graphql-codegen と apollo で resolvers の型定義が違う
実データは data => user => user ってオブジェクトなんだけど、型定義では data => user になっている
これは実装方法がどこかおかしい感じする
validation はされないか
DSL から TypeScript のコードを生成してくれる君
他のこともできそう
SaaS としての apollo との連携を前提としている?
yarn apollo client:codegen --target typescript --queries ./schema/queries --localSchemaFile ./schema/schema.graphql --includes "schema/queries/**"
これでローカルの schema と query を読みに行って generate してくれる
client だけか...
改めて読んで見る
BFF っぽい
GraphQL ベストプラクティス
mock できそう
vscode の拡張
有名そうなやつ
kumar-harsh.graphql-for-vscode
prisma.vscode-graphql
apollographql.vscode-apollo
apollo とか prisma を使っているならその拡張機能で良さそう
そうじゃないなら一番上のやつがいいかなあ