Configuring the schema
const schema = `#graphql
type Query {
me: String
}
`
export default schema
Configuring resolvers
const resolvers = {
me: () => 'hi"
}
export default resolvers
Configuring the server
import { startServerAndCreateNextHandler } from '@as-integrations/next'
import { ApolloServer } from '@apollo/server'
import {
ApolloServerPluginLandingPageLocalDefault,
ApolloServerPluginLandingPageProductionDefault,
} from '@apollo/server/plugin/landingPage/default'
import { NextRequest } from 'next/server'
import typeDefs from './schema'
import resolvers from './resolvers'
let plugins = []
if (process.env.NODE_ENV === 'production') {
plugins = [
ApolloServerPluginLandingPageProductionDefault({
embed: true,
graphRef: 'myGraph@prod',
}),
]
} else {
plugins = [ApolloServerPluginLandingPageLocalDefault({ embed: true })]
}
const server = new ApolloServer({
resolvers,
typeDefs,
plugins,
})
const handler = startServerAndCreateNextHandler<NextRequest>(server, {})
export async function GET(request: NextRequest) {
return handler(request)
}
export async function POST(request: NextRequest) {
return handler(request)
}