はじめてのぐらふきゅーえる。
なんとな〜くの流れと概念。スタートラインには立てた気がする。
GraphQLで出てくる概念
query
参照(RESTでいうGET)
- 単一リソース
- 複数リソース
mutation
破壊的変更(RESTでいうPOST, PUT, PATCH, DELETE)
- 作成
- 更新
- 削除
subscription
使っていないので省略。
GraphQLとRESTの違い
RESTはGET https://example.com/items
で「Itemの配列を取得したい」を伝える。
GraphQLはPOST https://example.com/graphql
まではどの場合でも共通している。その上で、bodyで「〇〇(例えばItem)のあの項目(例えばidとname)の配列を取得したい」などを伝える。
RESTはリクエストメソッドとエンドポイントで「〇〇したい」を伝えて、GraphQLはクエリで「これやりたい。このレスポンス欲しい」すべて伝える。
RESTでは、入力値・返却値はエンドポイントごとに決め打ち。逆に言うと、「このリクエストでよろしく / このレスポンス返すからね」というのが決まりきっているので、仕様者からするとdocがわかりやすいかもしれない?(Swaggerとか作るよね)
GraphQLが返すリソースははDBだけじゃない
これが結構目から鱗でした。
APIのエンドポイントそのものを返すこともあるらしい。
これはちゃんとイメージできていないんだけど、複数のバックエンドを統括するBFF(?)として使うこともあるらしい。
参考
- GraphQL とは - 概要、特徴、メリット・デメリット | Red Hat
- AppSync入門 - Qiita
- これは簡単でよかったです。サンプルプロジェクト、まじで3分でできる。
- GraphQLを最速でマスターするための意識改革3ヶ条 - Qiita