Apollo ServerとNowで作るGraphQLモックサーバ #1 準備編

GraphQLのモックサーバを作る際に使うものをメモ

使うもの

  • TypeScript
  • ts-node, ts-node-dev
  • apollo-server, apollo-engine
  • Zeit Now

TypeScript

  • 型があったほうが書きやすい
  • 最近はクライアント(React)も全てTypeScriptで書いてるし...
  • apollo-serverのパッケージには型情報が含まれている

ts-nodeとts-node-dev

  • 本番はともかく、パフォーマンスを必要としないdevでいちいちコンパイルしてから実行するのはめんどくさい
  • ts-nodeを使えば.tsをそのまま実行できる
    • とある案件のdev環境でしばらく使っているが安定稼働している
  • ローカルで開発を行う際にはts-node-devを使う
    • --respawn オプション付きで起動するとファイルの更新を検知して再起動する

Apollo Server

apollographql/apollo-server: GraphQL server for Express, Connect, Hapi, Koa and more

  • GraphQL APIサーバを立てるのに必要なものがだいたい揃ってる全部入りパッケージ
  • とある案件ではgraphql-yogaというものを使っているが、これもapollo-serverとだいたい同じもの
    • apollo-serverのほうがメジャーなので近々乗り換えようと思っている

Apollo Engine

Apollo Engine | The GraphQL Gateway with essential features like caching and performance tracing.

  • apollo-serverに追加することでクエリのキャッシュやモニタリングが可能になる
  • ユニークなのはフィールドごとにリクエスト回数が可視化されるところ
    • People.bloodTypeは1回もリクエストされてないからdeprecatedにしよう...といった判断に使える
  • Free版はカスタムアラートが使えない。有償版は$99/mo~ とややお高め
  • 既存サーバへの組み込みも容易

ZEIT Now


続く

nomusiclife.hatenablog.jp