GraphQL的Mock方式是一种在开发环境中模拟GraphQL API的方法,用于测试前端代码的可靠性和数据的呈现方式。以下是两种流行的GraphQL Mock方式:
graphql-tools
graphql-tools是一种流行的GraphQL工具库,可以用来编写基于GraphQL schema的mock数据。它提供了一个MockList构造函数,可以生成随机的mock数据。下面是一个使用graphql-tools的例子:
import { makeExecutableSchema } from 'graphql-tools';
const typeDefs = `
type Query {
books: [Book]
}
type Book {
title: String
author: String
}
`;
const resolvers = {
Query: {
books: (_, args) => new MockList(args.count),
},
};
const schema = makeExecutableSchema({
typeDefs,
resolvers,
});
Apollo Server Mocks
Apollo Server是一个用于创建GraphQL API的流行工具库。它提供了一个mocks选项,可以用于在开发环境中生成mock数据。下面是一个使用Apollo Server的例子:
import { ApolloServer, gql } from 'apollo-server';
const typeDefs = gql`
type Query {
books: [Book]
}
type Book {
title: String
author: String
}
`;
const mocks = {
Query: () => ({
books: () => new MockList(10),
}),
};
const server = new ApolloServer({
typeDefs,
mocks,
});
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
});
这里的MockList与graphql-tools中提供的构造函数相同。这两种方法都可以帮助您快速创建一个Mock GraphQL API,以便在开发过程中进行测试和调试。