使用: TypeScript , Prisma , MySQL , GraphQLServer , ApolloClient ,这样构建模式:
const schema = makePrismaSchema({
// Provide all the GraphQL types we've implemented
types: [Query, Mutation, User, Post],...
然后:
const server = new GraphQLServer({
schema,
context: { prisma }
});
如何将其与与SQL无关的自定义解析器和类型结合在一起?
(我也想通过GQL调用一些REST端点)
答案 0 :(得分:0)
虽然nexus
是为了与prisma
一起使用而创建的,但实际上它只是一个架构生成器。您甚至可以不使用Prisma轻松地使用它来创建模式。例如:
export const User = prismaObjectType({
name: 'User',
definition(t) {
t.list.field('comments', {
type: 'Comment',
resolve(root, args, ctx) {
return getComments();
},
});
},
})
export const Comment = prismaObjectType({
name: 'Comment',
definition(t) {
t.string('body');
},
})
这里getComments
可以返回一组注释对象,或一个可以解析为一个的Promise。例如,如果您要调用其他API,通常会返回一个Promise以及调用结果。如上所示,解析器公开了父值,字段的参数和上下文对象-您可以使用任何此类信息来确定如何解析特定字段。