システム開発

社員ブログ

GraphQLのクエリとミューテーションの違い

はじめに 

こんにちは、新入社員のぽかりと申します。 
今年4月に入社したフロントエンジニア初心者の私ですが、知らない用語や仕組みがたくさん…。 
今回は初めて触れたGraphQLの基本的な概念である「クエリ」と「ミューテーション」について、ご紹介していきたいと思います。 

1.GraphQLの基本概念 

GraphQLとは 

GraphQLは、APIとのやり取りを効率的に行うためのクエリ言語であり、特定のデータを取得するための柔軟な手段を提供します。GraphQLの主な利点は、クライアントが必要とするデータだけを取得できる点です。 
 

クエリとミューテーションの概要 

  • クエリ(Query): データを取得するために使用されます。 
  • ミューテーション(Mutation): データを変更するために使用されます。 

2.クエリ (Query) 

クエリとは 

クエリは、サーバーからデータを取得するためのリクエストです。クエリでは、取得したいデータの形を指定し、必要な情報だけを返してもらいます。 
 

クエリの例 

以下は、ユーザー情報を取得するクエリの例です。 
 
このクエリでは、IDが「1」のユーザーの名前とメールアドレスを取得します。 


クエリの使用方法 

クエリを使用することで、必要なデータだけを効率的に取得できます。GraphQLサーバーは、クエリの構造に基づいて必要なデータを返します。 

3.ミューテーション (Mutation) 

ミューテーションとは 

ミューテーションは、データの変更、追加、削除を行うためのリクエストです。ミューテーションは、データベースに対して変更を加えるために使用されます。 
 

ミューテーションの例 

以下は、ユーザーの情報を更新するミューテーションの例です。 
 
このミューテーションでは、IDが「1」のユーザーの名前を「New Name」に更新します。 
 

ミューテーションの使用方法 

ミューテーションを使用することで、データベースに対して直接変更を加えることができます。ミューテーションは、成功した場合に新しいデータを返すことが一般的です。 

4.クエリとミューテーションの違い 

基本的な違い 

  • クエリ: データの取得を目的とする。副作用はない。 
  • ミューテーション: データの変更を目的とする。副作用がある(データの更新、追加、削除など)。 

使用シーンの違い 

クエリはデータを表示するために使用され、ミューテーションはユーザーのアクションに応じてデータを変更するために使用されます。たとえば、ユーザーリストを表示するためにはクエリを使用し、ユーザーを追加するためにはミューテーションを使用します。 

5. 実際のプロジェクトでの活用例 

クエリとミューテーションの実際の使用例 

  • クエリ: 商品リストの表示、ユーザーのプロフィール表示など。 
  • ミューテーション: 新しい商品を追加、ユーザーの情報を更新、コメントを削除など。 

ベストプラクティス 

クエリとミューテーションを効果的に使用するためには、クエリでデータの取得を行い、ミューテーションで変更を行うという役割分担をしっかりと理解することが重要です。また、必要なデータを効率的に取得するために、クエリの設計に気を付ける必要があります。 

6.まとめ 

GraphQLにおけるクエリとミューテーションは、それぞれ異なる目的で使用されます。クエリはデータの取得に、ミューテーションはデータの変更に使用されるため、適切に使い分けることが重要です。これにより、効率的で柔軟なデータ操作が可能になります。 

最後に 

今回はクエリとミューテーションの違いについて触れてみましたが、まだまだ知らないことがたくさんあります。日々勉強しながら優れたエンジニアに成長できるよう精進していきたいです!これからもどうぞよろしくお願いします。 

Back to Top