graphql-tools
[Apollo] によって開発が進められている、[GraphQL.js] をサポートするライブラリ群。基本的には、[GraphQL.js] の上に便利な API をいくつか生やすレイヤーの役割を担っていると思ってしまって良さそう。[GraphQL.js] における `GraphQLSchema` インスタンスを作成する各種 APIGraphQL API のモッキング複数の GraphQL API の [Schema Stitching]
GraphQLSchema
クラスのインスタンスと捉えることができる。const { makeExecutableSchema } = require('graphql-tools')
const { grpahql } = require('grpahql')
const typeDefs = `
type Query {
item(id: ID!): Item
}
type Item {
id: ID!
name: String
description: String
}`
const resolvers = {
Query: {
item: (root, args, context, info) => {
return ...
}
},
}
// ここで、GraphQLSchema インスタンスが作られる
// SDL 内のフィールドとリゾルバ定義をマッピングする
const schema = makeExecutableSchema({
typeDef,
resolvers
})
// クエリの実行
const query = `
query {
item(id: "1") {
name
description
}
}`
graphql(schema, query)
.then(result => console.log(result))
makeRemoteExecutableSchema
を利用すると、外部の GraphQL API エンドポイントから GraphQLSchema
インスタンスを作成できる。これは、スキーマ定義と GraphQL API エンドポイントの2つを引数にとる。