前回の記事の内容に、スキーマとリゾルバーの定義、クエリとミューテーションの実装を追加します。前回の記事をご覧になっていない方はそちらを先に御覧ください。

Node.jsとExpressでGraphQLサーバーを作成!初心者向け手順解説
API開発の新たなスタンダードであるGraphQL。Node.jsとExpressを使って、簡単にGraphQLサーバーを作成しましょう!この記事では、初心者向けに手順を詳細に説明します。GraphQLの基本概念から実装まで、一歩ずつ進めて...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | const express = require( 'express' ); const { graphqlHTTP } = require( 'express-graphql' ); const { buildSchema } = require( 'graphql' ); // GraphQLスキーマの定義 const schema = buildSchema(` type Query { hello: String message(id: Int!): String } type Mutation { setMessage(id: Int!, message: String!): String } `); // メッセージを格納するオブジェクト const messageStore = {}; // リゾルバ関数の定義 const root = { hello: () => 'Hello, world!' , message: ({ id }) => messageStore[id], setMessage: ({ id, message }) => { messageStore[id] = message; return message; }, }; // Expressサーバーの設定 const app = express(); app.use( '/graphql' , graphqlHTTP({ schema: schema, rootValue: root, graphiql: true , })); // サーバーの起動 |
このソースコードでは、message
クエリと setMessage
ミューテーションを追加しています。message
クエリは、指定されたIDに対応するメッセージを返すもので、setMessage
ミューテーションは、指定されたIDにメッセージを保存するものです。
以下のようなクエリとミューテーションを http://localhost:4000/graphql
で実行してみてください。
ミューテーションでメッセージを設定する:
1 | mutation { setMessage( id : 1, message: "こんにちは!" ) } |
クエリでメッセージを取得する:
1 | { message( id : 1) } |
これで、スキーマとリゾルバーの定義、クエリとミューテーションの実装が完了しました。このソースコードを基に、さらに複雑なデータ構造やリゾルバを追加して、独自のGraphQLサーバーを構築してみてください。