Isn't this how we setup the Graph QL opening point in NEXT JS ?
Answered
Pigeon tremex posted this in #help-forum
Pigeon tremexOP
I go to /api/graphql, it shows 404 page
10 Replies
@Pigeon tremex I go to /api/graphql, it shows 404 page
route handler need to be named in
so if you want the url to be
route.tsso if you want the url to be
/api/graphql, you have to create it in src/app/api/graphql/route.ts@Ray route handler need to be named in `route.ts`
so if you want the url to be `/api/graphql`, you have to create it in `src/app/api/graphql/route.ts`
Pigeon tremexOP
It did work but now I got another sort of error
So this will be inside my route.ts but I got an error that says
import { ApolloServer } from '@apollo/server';
import { startServerAndCreateNextHandler } from '@as-integrations/next';
import { gql } from 'graphql-tag';
const resolvers = {
Query: {
hello: () => 'world',
},
};
const typeDefs = gql`
type Query {
hello: String
}
`;
const server = new ApolloServer({
resolvers,
typeDefs,
});
export default startServerAndCreateNextHandler(server);So this will be inside my route.ts but I got an error that says
Detected default export in '/home/Personal Projects/graphql-server/src/app/api/graphql/route.ts'. Export a named export for each HTTP method instead.
⨯ No HTTP methods exported in '/homePersonal Projects/graphql-server/src/app/api/graphql/route.ts'. Export a named export for each HTTP method.@Pigeon tremex It did work but now I got another sort of error
js
import { ApolloServer } from '@apollo/server';
import { startServerAndCreateNextHandler } from '@as-integrations/next';
import { gql } from 'graphql-tag';
const resolvers = {
Query: {
hello: () => 'world',
},
};
const typeDefs = gql`
type Query {
hello: String
}
`;
const server = new ApolloServer({
resolvers,
typeDefs,
});
export default startServerAndCreateNextHandler(server);
So this will be inside my route.ts but I got an error that says
Detected default export in '/home/Personal Projects/graphql-server/src/app/api/graphql/route.ts'. Export a named export for each HTTP method instead.
⨯ No HTTP methods exported in '/homePersonal Projects/graphql-server/src/app/api/graphql/route.ts'. Export a named export for each HTTP method.
try changing
to
export default startServerAndCreateNextHandler(server);to
const handlers = startServerAndCreateNextHandler(server);
export { handlers as GET, handlers as POST }Pigeon tremexOP
holly, it worked. What's the logic behind it ?
ohh ohh I get it I get it, so while exporting the name should always match to the http methods, GET POST right ?
@Ray https://nextjs.org/docs/app/api-reference/file-conventions/route
Pigeon tremexOP
ohh ohh oki thanks !! Appreciated â¤ï¸