ほとんどの場合、必要なのはGraphQLスキーマ言語を使用してAPIの型を指定することだけです。これは、buildSchema
関数の引数として渡されます。
GraphQLスキーマ言語は、String
、Int
、Float
、Boolean
、ID
のスカラー型をサポートしているので、これらをbuildSchema
に渡すスキーマで直接使用できます。
デフォルトでは、すべての型はnull許容です。つまり、スカラー型のいずれかとしてnull
を返すことは有効です。型がnullを許容できないことを示すには、感嘆符を使用します。そのため、String!
はnullを許容しない文字列です。
リスト型を使用するには、型を角括弧で囲みます。そのため、[Int]
は整数のリストです。
これらの各型はJavaScriptに直接マップされるため、これらの型を返すAPIでは、プレーンなJavaScriptオブジェクトを返すだけで済みます。いくつかの基本的な型の使い方を示す例を次に示します。
var express = require("express")var { createHandler } = require("graphql-http/lib/use/express")var { buildSchema } = require("graphql")
// Construct a schema, using GraphQL schema languagevar schema = buildSchema(` type Query { quoteOfTheDay: String random: Float! rollThreeDice: [Int] }`)
// The root provides a resolver function for each API endpointvar root = { quoteOfTheDay: () => { return Math.random() < 0.5 ? "Take it easy" : "Salvation lies within" }, random: () => { return Math.random() }, rollThreeDice: () => { return [1, 2, 3].map(_ => 1 + Math.floor(Math.random() * 6)) },}
var app = express()app.all( "/graphql", createHandler({ schema: schema, rootValue: root, }))app.listen(4000)console.log("Running a GraphQL API server at localhost:4000/graphql")
node server.js
でこのコードを実行し、http://localhost:4000/graphqlにアクセスすると、これらのAPIを試すことができます。
これらの例では、さまざまな型を返すAPIの呼び出し方法を示しています。さまざまな型のデータをAPIに送信するには、GraphQL APIへの引数の渡し方についても学習する必要があります。