Dec 10, 2025

GraphQL API を作成するにはどうすればよいですか?

伝言を残す

ちょっと、そこ! API プロバイダーとして、私は GraphQL が API の世界でいかにゲームチェンジャーになったかを直接見てきました。このブログでは、GraphQL API の作成方法を説明します。

GraphQL の基本を理解する

まず最初に、GraphQL とは何かを理解しましょう。事前定義されたデータ構造を返すエンドポイントの固定セットを持つ REST とは異なり、GraphQL ではクライアントが必要なデータを正確に指定できます。これは、データのオーバーフェッチやアンダーフェッチが少なくなることを意味し、大きな利点となります。

ユーザー情報を必要とするアプリを構築していると想像してください。 REST API を使用すると、次のようなエンドポイントが存在する可能性があります。/ユーザー/:idこれは大量のユーザー データを返しますが、その一部はアプリで使用すらされない可能性があります。しかし、GraphQL を使用すると、クライアントは次のようなクエリを送信できます。

クエリ { ユーザー(id: "123") { 名前 メール } }

そしてそれはただ名前そして電子メールID を持つユーザーのフィールド123

環境のセットアップ

GraphQL API を作成するには、いくつかのツールが必要です。 GraphQL サーバーを構築するために最も人気のあるのは Apollo Server で、Node.js とうまく連携します。したがって、まだインストールしていない場合は、マシンに Node.js をインストールします。

Node.js を起動して実行したら、プロジェクト用の新しいディレクトリを作成し、ターミナルでそのディレクトリに移動します。次に、次を実行して新しい Node.js プロジェクトを初期化します。

npm init -y

これにより、パッケージ.jsonプロジェクトディレクトリ内のファイル。

次に、Apollo Server と GraphQL をインストールします。

npm install apollo-servergraphql

スキーマの定義

スキーマは GraphQL API の中心です。これは、クライアントがクエリできるデータのタイプとそれらの間の関係を定義します。

単純なライブラリの API を構築しているとします。タイプがあるかもしれません著者、 そしてジャンル。 JavaScript で基本的なスキーマを定義する方法は次のとおりです。

const { gql } = require('apollo-server'); const typeDefs = gql` type Book { id: ID!タイトル:紐!著者:著者!ジャンル:ジャンル! } type 著者 { id: ID!名前:ストリング!本: 【予約】! } type ジャンル { id: ID!名前:ストリング!本: 【予約】! } type Query {books: [本!]! book(id: ID!): 本の著者: [著者!]! author(id:ID!): 著者ジャンル: 【ジャンル!】!ジャンル(id: ID!): ジャンル } `; module.exports = typeDefs;

このスキーマでは、3 つのタイプ (著者、 そしてジャンル)とクエリクライアントがデータをフェッチできるようにするタイプ。の記号はフィールドが必須であることを意味します。

リゾルバー

リゾルバーは、スキーマ内の各フィールドのデータを取得する方法を GraphQL に指示する関数です。たとえば、のフィールドクエリtype はデータベースから書籍のリストを取得する場合があります。

以下は、ライブラリ API の単純なリゾルバーのセットです。

const { 本、著者、ジャンル } = require('./data'); constsolvers = { クエリ: { 本: () => 本, 本: (親, { id }) => 本.find(本 => book.id === id), 著者: () => 著者, 著者: (親, { id }) => authors.find(著者 => 著者.id === id), ジャンル: () => ジャンル, ジャンル: (親, { id }) => ジャンル.find(genre =>ジャンル.id === id) }, 本: { 著者: (本) => authors.find(著者 => author.id === book.authorId), ジャンル: (本) => ジャンル.find(genre => ジャンル.id === 本.genreId) }, 著者: { 本: (著者) => 本.filter(本 => book.authorId === 著者.id) }, ジャンル: { 本: (ジャンル) => Books.filter(book => book.genreId === ジャンル.id) } }; module.exports = リゾルバー;

このコードでは、サンプル データがデータ.jsファイル。のリゾルバークエリ型は適切なデータを返し、他の型のリゾルバーは型間の関係を処理します。

サーバーの作成

スキーマとリゾルバーが完成したので、次は Apollo サーバーを作成します。

const { ApolloServer } = require('apollo-server'); const typeDefs = require('./schema'); constsolvers = require('./resolvers'); const サーバー = new ApolloServer({ typeDefs, リゾルバー }); server.listen().then(({ url }) => { console.log(`${url}` でサーバーの準備ができました); });

このコードを実行すると、ノードインデックス.js(ファイルに名前が付けられていると仮定すると、インデックス.js)、サーバーはローカル ポートで実行を開始し、コンソールに出力された URL で GraphQL プレイグラウンドにアクセスできるようになります。

API のテスト

サーバーが実行されたら、GraphQL プレイグラウンドを使用して API をテストできます。ブラウザで URL を開くと、クエリとミューテーションを作成できるインターフェイスが表示されます。

たとえば、すべての書籍を取得するクエリを作成できます。

クエリ { 本 { タイトル 著者 { 名前 } }

このクエリは、タイトルと著者名を含む本のリストを返します。

セキュリティとパフォーマンス

GraphQL API を作成する場合、セキュリティとパフォーマンスが非常に重要です。クライアントが参照を許可されているデータのみにアクセスできるようにする必要があります。これを行う 1 つの方法は、認証および認可メカニズムを実装することです。

パフォーマンスを向上させるために、キャッシュやバッチ処理などの手法を使用できます。 Apollo Server にはキャッシュのサポートが組み込まれており、次のようなライブラリを使用できます。データローダーデータベースリクエストのバッチ処理用。

Eliminate Phlegm 93-14-1 GMP GuaifenesinAnastrozole

既存のシステムとの統合

API プロバイダーとして、GraphQL API をデータベースや他の API などの既存のシステムと統合する必要がある場合があります。コネクタまたはアダプタを使用して、これらのシステムと対話できます。たとえば、PostgreSQL データベースを使用している場合は、ページライブラリに接続してデータを取得します。

結論

GraphQL API の作成は、クライアントに柔軟かつ効率的なデータ アクセスを提供する優れた方法です。このブログで説明されている手順に従うことで、ユーザーのニーズを満たす堅牢な GraphQL API を構築できます。

弊社の API サービスの使用にご興味がある場合、または GraphQL API 開発についてご質問がある場合は、調達についての話し合いのためお気軽にお問い合わせください。私たちはいつでも喜んでチャットし、お客様のビジネスに最適なソリューションを見つけるお手伝いをいたします。

さまざまな業界に関連するAPIも提供しています。たとえば、製薬業界にいる場合は、次のような製品に関連する API に興味があるかもしれません。アナストロゾールそしてグアイフェネシン。についてさらに詳しく確認することもできますアナストロゾール当社のウェブサイトで。

参考文献

  • Apollo サーバーのドキュメント
  • GraphQL仕様
  • Node.js ドキュメント
お問い合わせを送る