This package allows you to easily develop a GraphQL server in your Nuxt 3 application.
For consuming a GraphQL API on the client-side, we recommend the modules Nuxt Apollo, Nuxt GraphQL Client or nuxt/graphql-client.
- Provides a virtual module
#graphql/schema
from where you can import your schema. Under the hood, it automatically merges multiple schema files together into a complete schema. Moreover, you no longer need to worry about deploying schemagraphql
files. - Automatically generated typescript definitions for your resolvers via the virtual module
#graphql/resolver
.
# npm
npm install @apollo/server graphql @as-integrations/h3 nuxt-graphql-server
# yarn
yarn add @apollo/server graphql @as-integrations/h3 nuxt-graphql-server
# pnpm
pnpm add @apollo/server graphql @as-integrations/h3 nuxt-graphql-server
-
Add the module in
nuxt.config.ts
:export default defineNuxtConfig({ modules: [ 'nuxt-graphql-server' ], graphqlServer: { // Optional: config } }) ̀ ``
-
Define the GraphQL schema in
.graphql
files located in theserver
folder. -
Expose the GraphQL API endpoint by creating
server/api/graphql.ts
with the following content:import { Resolvers } from '#graphql/resolver' import { schema } from '#graphql/schema' import { ApolloServer } from '@apollo/server' import { startServerAndCreateH3Handler } from '@as-integrations/h3' const resolvers: Resolvers = { Query: { // Typed resolvers }, } const apollo = new ApolloServer({typeDefs: schema, resolvers}) export default startServerAndCreateH3Handler(apollo, { // Optional: Specify context context: (event) => {...}, })
- Clone this repository
- Enable Corepack using
corepack enable
(usenpm i -g corepack
for Node.js < 16.10). - Install dependencies using
pnpm install --shamefully-hoist
. -
- Run
pnpm run prepare
to generate type stubs.
- Run
- Use
pnpm run dev
to start playground in development mode.
Made with 💛
Published under MIT License.