Это технически возможно, потому что вы можете напрямую выполнять запросы к схеме (см. здесь ). Однако вам придется вручную сопоставить свои контроллеры с указанными c запросами, и это излишне сложно. Лучшим вариантом является извлечение общей логики c в отдельные модули, которые затем используются как вашими решателями GraphQL, так и вашими контроллерами REST. В любом случае, лучше хранить таким образом свою бизнес-логику c отдельно от контроллеров / распознавателей - именно из-за такого сценария ios.
// post-service.js
module.exports = {
create: (content, author) => {
// this just calls another function, but in reality you might include any number
// of additional steps, for example, transforming and validating the inputs
return Post.create({ content, author })
}
}
// post-controller.js
module.exports = async (req, res, next) => {
const post = await PostService.create(req.body.content, req.user)
return post
}
// resolvers.js
module.exports = {
Mutation: {
createPost: (root, args, ctx) => {
const post = await PostService.create(args.content, ctx.user)
return post
},
},
}