基本原理
- 在
/pages/api
文件夹下创建graphql.ts
文件,并在其中初始化和导出ApolloServer.createHandler
返回的实例
- 其实就是将API Route的请求全部转给
Apollo Server
去做处理
版本问题
apollo-server-micro
近一个月刚刚更新到3.0.x
版本,而这个的使用方法和2.x.x
略有不同,在
2.0.x
中的使用方法如下import { ApolloServer } from "apollo-server-micro"; import { typeDefs } from "./schemas"; import { resolvers } from "./resolvers"; const apolloServer = new ApolloServer({ typeDefs, resolvers }); export const config = { api: { bodyParser: false } }; // 直接返回apolloServer.createHanlder的结果作为exports.default的值 export default apolloServer.createHandler({ path: "/api/graphql" });
在
3.0.x
中的使用方法import { ApolloServer } from "apollo-server-micro"; import { typeDefs } from "../../graphql/schemas"; import { resolvers } from "../../graphql/resolvers"; console.log(typeof resolvers) const apolloServer = new ApolloServer({ typeDefs, resolvers }); export const config = { api: { bodyParser: false } }; // 1.需要调用apolloServer.start // 2. 需要用module.exports去接收返回的Promise module.exports = apolloServer.start().then(() => apolloServer.createHandler({ path: "/api/graphql" }));