Closed6
【技術選定の裏側:GraphQL編 vol.1】読書ログ
この記事を読んでの感想をまとめる
知りたい事
- 実務でのGraphQL導入のメリット・デメリット
- 趣味的にしかGraphQLを触った事がない
- 導入時の周辺の技術
フロントエンド
- TypeScript
- GraphQLのAPIを叩く為にApollo Client
そもそもGraplQLとは?
クライアントとサーバーの通信の進化
- htmlでドキュメントを送る
- スマホや他のデバイスが登場し、RESTful APIを通して、どの媒体でもデータを受け取れる形になる
- RESTは概念である
- クエリ言語として統一されたGraphQLが登場
REST と比べたGraphQLのメリット
GraphQLは必要なデータをピンポイントで取得できる。
- APIを介したデータ量を減らせる
- RESTは特定のデータだけを取得する形が難しい
- ユーザー名だけでなく、ユーザーデータ全てを返す場合など
- RESTは特定のデータだけを取得する形が難しい
- バージョン管理がしやすい
- 修正・削除の際にどのパラメータを使っているのかがRESTでは分かりにくい
参考
- https://www.webprofessional.jp/rest-2-0-graphql/
- https://eh-career.com/engineerhub/entry/2018/12/26/103000/?PK=1094F6&isLoginAfter
apollo clientとは?
GraphQLをシンプルにクライアント側で使えるライブラリ
apollo client のメリット
フロントエンドの状態管理をGraphQLで宣言的に扱える
参考
↑ここまでは予習
メリット
- RESTではエラーレスポンスなどAPI全体の基盤まで設計しないといけない
- GraphQLは型定義ができる為、ドキュメントなどの自動生成が可能
- API仕様確認のコミュニケーションコストが下がる
デメリット
- 監視しづらい
- APIのポイントのみを提供し、ステータスは全て200で返す為、インフラ側の監視ツールでエラーを検知しにくい
- Sentryで例外キャッチする対策が多く使われている
- パフォーマンスの監視が難しい
- フロント側は状態管理が難しい
- apollo clientとReduまいnなどの併用はベストプラクティスがまだ少ない
まとめ
監視系の問題が気になるなら、まだRESTが良さそう。
それ以外の場合はGraphQL導入に大きな障害はなし!!
特に「API規模が大きい・複雑」、「UI変更などのフロント周りの要件が多い」などの場合にはおすすめ
このスクラップは2022/03/10にクローズされました