В настоящее время я изучаю GraphQL и, как часть процесса разработки, меня интересует модульность моего кода - я понимаю, как писать запрос, но не понимаю, как правильно реализовать запрос запросов.
Это rootQuery. js
const {
GraphQLInt,
GraphQLList,
GraphQLObjectType,
GraphQLSchema,
GraphQLFloat,
GraphQLString
} = require("graphql");
const bankRootQuery = require('../graphql/queries/bank.queries')
const rootQuery = new GraphQLObjectType({
name: "rootQuery",
fields: {
bankRootQuery: { type: bankRootQuery, resolve: () => { console.log(bankRootQuery.resolve) } }
}
});
module.exports = new GraphQLSchema({
query: rootQuery
});
А вот bankRootQuery. js:
const { GraphQLObjectType, GraphQLInt, GraphQLNonNull, GraphQLID, GraphQLList } = require("graphql");
const BankType = require('../types/bank.type');
const models = require('../../models/models_handler');
module.exports = new GraphQLObjectType({
name: "bankRootQuery",
fields: {
getbanks: {
type: new GraphQLList(BankType),
resolve: () => {
return models.getBanks()
}
},
getbankByID: {
type: BankType,
args: {
bankID: { name: "bankID", type: GraphQLInt }
},
resolve: (_, args) => {
if (!models.getBanks().has(args.bankID))
throw new Error(`Bank with ID ${args.bankID} doesn't exists`);
return models.getBank(args.bankID);}
}
}
});
Назначение bankRootQuery
объекту схемы вместо rootQuery
работает отлично, но использование rootQuery
дает нулевой результат при запросах с использованием GraphiQL - Структура Documentation Explorer
, кажется, работает должным образом, поэтому я предполагаю, что проблема в функции разрешения, которую я не не понимаю, как правильно определить.
Вот результат при запросе с использованием GraphQL:
{
"data": {
"bankRootQuery": null
}
}