Optimization 快速/图形化建议
我正在学习GraphQL,并寻找一些关于我是否在正确的轨道上的指导,或者我是否完全偏离了这里的基础。基本上,我已经用expressgraphql和Prisma编写了我的后端,我看到了一些不同的教程,它们似乎分别使用大型模板字符串来定义模式来编写类型和解析器。我随后使用Optimization 快速/图形化建议,optimization,graphql,express-graphql,Optimization,Graphql,Express Graphql,我正在学习GraphQL,并寻找一些关于我是否在正确的轨道上的指导,或者我是否完全偏离了这里的基础。基本上,我已经用expressgraphql和Prisma编写了我的后端,我看到了一些不同的教程,它们似乎分别使用大型模板字符串来定义模式来编写类型和解析器。我随后使用newgraphqlobjecttype()构建模式,并将所有不同的类型导入到一个根查询中,然后将其传递到GraphQlSchema() 我的困惑和疑问:这样做对吗? 我最终得到的是一个非常长的模式文件,该文件功能正常,工作正常,但
newgraphqlobjecttype()
构建模式,并将所有不同的类型导入到一个根查询中,然后将其传递到GraphQlSchema()
我的困惑和疑问:这样做对吗?
我最终得到的是一个非常长的模式文件,该文件功能正常,工作正常,但不适合维护。我很难在网上找到任何关于如何分离这段代码并保持其功能的例子。我尝试导出一个仅包含GraphQL对象类型的文件,并将它们导入到schema.js
文件中,然后在那里构建我的根查询,但这似乎不起作用。我曾尝试将字段作为对象导出,然后使用扩展运算符来组合我的根查询,并尝试在我的类型文件中使用多个new GraphQlSchema()
语句,然后使用graphql工具mergeSchema
将所有字段组合在一起,但这也不起作用。我在这一点上有点迷茫,只是需要一些指导或一个例子来看看以这种方式构建的更大项目
作为参考,这里有一个代码片段示例,可以清楚地说明我是如何构建GQL后端的,为了澄清查询工作得很好,这里是代码维护,我非常感谢您的建议:)
感谢您提供的帮助或示例
const prisma = require("../config/prismaClient");
const graphql = require('graphql');
const {
GraphQLObjectType,
GraphQLSchema,
GraphQLString,
GraphQLList } = graphql;
const UserType = new GraphQLObjectType({
name: "User",
fields: () => ({
id: { type: GraphQLString },
first_name: { type: GraphQLString },
last_name: { type: GraphQLString },
})
})
const BusinessType = new GraphQLObjectType({
name: 'Business',
fields: () => ({
id: { type: GraphQLString },
name: { type: GraphQLString },
street_address: { type: GraphQLString },
})
})
const RootQuery = new GraphQLObjectType({
name: 'RootQueryType',
fields: {
users: {
type: new GraphQLList(UserType),
async resolve() {
return await prisma.users.findMany();
}
},
businesses: {
type: new GraphQLList(BusinessType),
async resolve() {
return await prisma.businesses.findMany();
}
}
}
})
module.exports = new GraphQLSchema({
query: RootQuery
})
我的困惑和疑问是:这样做对吗
没有正确或错误的方式来编写您的模式。您可以使用SDL(模式定义语言),这是非常可读的,但是您需要向项目添加一些依赖项来设置它。具有非常好的实用程序,可以轻松编写模式
是的,在尝试设置这些工具时,它可能会有点难以承受。我喜欢根据Type
在目录中拆分模式和解析器,然后graphql工具
帮助我将所有解析器和模式合并到一个目录中。
我发现这个项目,看看他们是如何构建graphql服务器的
我的困惑和疑问是:这样做对吗
没有正确或错误的方式来编写您的模式。您可以使用SDL(模式定义语言),这是非常可读的,但是您需要向项目添加一些依赖项来设置它。具有非常好的实用程序,可以轻松编写模式
是的,在尝试设置这些工具时,它可能会有点难以承受。我喜欢根据Type
在目录中拆分模式和解析器,然后graphql工具
帮助我将所有解析器和模式合并到一个目录中。
我发现这个项目,看看他们是如何构建graphql服务器的