要使用Apollo Server与Prisma 2,首先需要安装所需的软件包。可以使用以下命令安装Apollo Server和Prisma 2:
npm install apollo-server graphql prisma
接下来,我们将创建一个简单的GraphQL服务器,该服务器使用Apollo Server和Prisma 2。
首先,创建一个名为index.js
的文件,然后将以下代码添加到文件中:
const { ApolloServer, gql } = require('apollo-server');
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
const typeDefs = gql`
type User {
id: Int!
name: String!
email: String!
}
type Query {
users: [User!]!
}
type Mutation {
createUser(name: String!, email: String!): User!
}
`;
const resolvers = {
Query: {
users: async () => {
return prisma.user.findMany();
},
},
Mutation: {
createUser: async (_, { name, email }) => {
return prisma.user.create({ data: { name, email } });
},
},
};
const server = new ApolloServer({ typeDefs, resolvers });
server.listen().then(({ url }) => {
console.log(`Server running at ${url}`);
});
在上面的代码中,我们定义了一个GraphQL模式,其中包含一个名为User
的类型,一个名为users
的查询和一个名为createUser
的突变。然后,我们使用Prisma 2的PrismaClient
初始化一个实例,并在解析器中使用它来处理查询和突变。
最后,我们创建一个Apollo Server实例,并使用typeDefs
和resolvers
作为参数传递给它。然后,我们使用server.listen()
方法启动服务器。
现在,您可以运行以下命令启动服务器:
node index.js
现在,您可以在浏览器中打开GraphQL Playground(默认地址是http://localhost:4000
),并尝试运行查询和突变。例如,您可以运行以下查询获取所有用户:
query {
users {
id
name
email
}
}
或者,可以运行以下突变创建新用户:
mutation {
createUser(name: "John Doe", email: "john.doe@example.com") {
id
name
email
}
}
希望这个示例能够帮助您开始使用Apollo Server和Prisma 2!