:-) 🏕

GraphQL: Schema first or Code first 🤔

September 30, 2019

TL;DR

  • GraphQL は万能ではない
  • Code first をもう少し素振りする

Graph QL

  • GraphQL のサーバー実装ができないか NestJS を素振りしている
  • Swagger 等で Definition を管理する機会を数度経験したがコードとの乖離が苦しい
  • Code first まで言わずともある程度型が一致してほしい
  • 別に Client のコードまで生成しなくても良い(むしろ品質が悪いぐらいなら使わない)
  • Interface は乖離しないようにしたい

Must to have

  • Frontend, Backend 共通のものとして(片方から|両方)生成できる
  • CI で乖離を検知できる

Want to have

  • 実装が先行しない状態を許容できる(Schema first)
  • Generate フローが単方向
  • Apollo とか State 管理まで面倒見る気みたいっすよ?

Nest + GraphQL

  • Schema first or Code First を選択して利用できる

    • Schema first では実装を縛れない判断で Code First type-graphql で実装
    • TypeORM のコードをしばれるコードが生成できないと辛い => (要検討)
  • Service Class を CI して ORM につなげていける?
  • @next/graphql は薄い wrapper で基本的には GraphQL を意識すれば良い?

Written by Keisuke Kan who lives and works in Japan building useful things. You should follow him on Twitter