4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GraphQLとは?REST API との比較もしてみました

Posted at

GraphQLポイント

  • Graph(グラフ構造の) + QL(クエリ言語)。Web APIの1つでREST APIの次のパラダイムとして注目されている
  • GraphQL APIのエンドポイントは1つで、データ操作の種類(CRUD)と欲しいレスポンス形式を指定してリクエストし、データを取得することができる
  • クライアント(フロントエンド)側からデータのレスポンス形式を指定できる

GraphQL用語

用語 意味
Query クエリ処理( = Get)
Mutation トランザクション処理( = Put/Post/Delete)
Schema APIの定義。クライアントがサーバーにクエリを送信し、返却値として期待されるオブジェクトの型を定義
Subscription クライアントへの通知。( = WebSocketと同様の効果)

仕組みのイメージ

27ADFwx4YFgCeBgp-067F1.png

REST API との比較

比較項目 REST API GraphQL
データ操作の種類 GET/POST/PUT/DELETE Query/Mutation
エンドポイント 複数([GET]user/[PUT]setting など欲しいデータによってリクエスト先エンドポイントが変わる) 1つ(データ操作の種類と欲しいレスポンス形式を指定する)
型付け 弱い 強い
Pub/Sub なし(WebSocketを使用することが多い) 可(subscription)

メリット

  • クライアントからAPIのレスポンスの指定ができる
  • サブスクリプションを利用したリアルタイム処理ができる
    • クライアントはデータをサブスクライブすることで、イベントドリブンに処理を実装することが可能

デメリット

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?