グラフQL

PHPz
リリース: 2024-08-10 16:38:03
オリジナル
601 人が閲覧しました

グラフQL

グラフQLとは何ですか?

グラフQL は、API 用の強力なクエリ言語であり、データを使用してクエリを実行するためのランタイムです。 2012 年に Facebook によって開発され、2015 年にオープンソース プロジェクトとしてリリースされた グラフQL を使用すると、クライアントは必要なデータを正確にリクエストできます。それ以上でもそれ以下でもありません。

主な機能:

  • 単一エンドポイント: 通常複数のエンドポイントを使用する REST とは異なり、グラフQL はすべてのリクエストに対して単一のエンドポイントを使用します。
  • 柔軟なクエリ: クライアントは、単一のクエリで必要な特定のデータのみをリクエストできます。
  • 強力な型付け: スキーマは API 内の型と関係を定義し、堅牢なデータ検証とイントロスペクションを保証します。

グラフQL と REST の違い

1.データの取得:

  • REST: 関連データをフェッチするには複数のエンドポイントが必要です。たとえば、/users を押してから /users/{id}/posts を押す必要がある場合があります。
  • グラフQL: 単一のクエリで必要なデータをすべて取得できます。 1 回のリクエストでユーザーの詳細と投稿を取得できます。

2.オーバーフェッチとアンダーフェッチ:

  • REST: 必要以上のデータを返す (オーバーフェッチ) か、より多くのデータを取得するために追加のリクエストが必要になる (アンダーフェッチ) ことがよくあります。
  • グラフQL: クライアントは必要なデータを正確に指定し、オーバーフェッチとアンダーフェッチの両方を排除します。

3.バージョン管理:

  • REST: API バージョンを更新する必要がある場合があります (例: /v1/users から /v2/users へ)。
  • グラフQL
  • : バージョン管理なしで進化します。既存のクエリを壊すことなく、新しいフィールドとタイプを追加できます。
基本的なグラフQLクエリの例

ユーザー情報を取得するための グラフQL クエリを作成する方法は次のとおりです:

リーリー
このクエリでは:

user(id: "1") は、ID 1 のユーザーを取得することを指定します。
  • ネストされたフィールドの名前、電子メール、および投稿が要求されます。
  • 投稿にはサブフィールドのタイトルとコンテンツが含まれており、ネストされたデータ構造が可能です。
シンプルなグラフQLサーバーのセットアップ

グラフQL を始めるには、Node.js と Apollo Server を使用して基本的なサーバーをセットアップしましょう。

1.依存関係をインストールします:

リーリー

2.基本サーバーを作成します:

index.js という名前のファイルを作成し、次のコードを追加します:

リーリー

3.サーバーを実行します:

リーリー
これでサーバーが実行され、GraphiQL (http://localhost:4000 で入手可能) または任意の グラフQL クライアントを使用してテストできます。

グラフQL を使用する理由

    効率的な​​データ読み込み
  • : 必要なものを正確にリクエストし、不必要なデータ転送を削減します。
  • スキーマと型の安全性
  • : データ構造を強制し、データを効率的に検証します。
  • 開発者エクスペリエンス
  • : GraphiQL や Apollo Client などのツールは、オートコンプリートやドキュメントなどの機能により生産性を向上させます。
今すぐ グラフQL を始めましょう!

グラフQL を使用すると、より効率的で柔軟でスケーラブルな API を構築できます。来週も、スキーマ設計やミューテーションなどの高度な グラフQL トピックをさらに詳しく掘り下げていきますので、お楽しみに。

以上がグラフQLの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!