This is the documentation for the old GraphQL Yoga v4.
We recommend
upgrading to the latest GraphQL Yoga v5. Migrate to GraphQL Yoga
v5.
Integration with NestJS
Nest (Nest JS) is a progressive Node.js framework for building efficient, reliable and scalable server-side applications.
GraphQL Yoga provides its own Nest GraphQL Driver that support building standalone GraphQL APIs and Apollo Federation GraphQL APIs (Gateway and Services).
For the setup of a new Nest project, please make sure to read the Nest GraphQL documentation .
Standalone
Install
npm i @nestjs/graphql @graphql-yoga/nestjs graphql-yoga graphql
Create Application Module
import { YogaDriver, YogaDriverConfig } from '@graphql-yoga/nestjs'
import { Module } from '@nestjs/common'
import { GraphQLModule } from '@nestjs/graphql'
@Module({
imports: [
GraphQLModule.forRoot<YogaDriverConfig>({
driver: YogaDriver
})
]
})
export class AppModule {}
Develop GraphQL
This is just a HTTP transport driver; meaning, everything else should work as showcased in NestJS documentation .
Apollo Federation
Separately, we offer a @graphql-yoga/nestjs-federation
driver which allows building Apollo
Federation Gateways and Services through the YogaGatewayDriver
and YogaFederationDriver
drivers.
Install
npm i @nestjs/graphql @graphql-yoga/nestjs-federation graphql-yoga graphql
Create Application Module
import { YogaFederationDriver, YogaFederationDriverConfig } from '@graphql-yoga/nestjs-federation'
import { Module } from '@nestjs/common'
import { GraphQLModule } from '@nestjs/graphql'
@Module({
imports: [
GraphQLModule.forRoot<YogaFederationDriverConfig>({
driver: YogaFederationDriver,
typePaths: ['**/*.graphql']
})
]
})
export class AppModule {}
Develop GraphQL
This is just a federation and gateway driver; meaning, everything else should work as showcased in NestJS federation documentation .
A complete example, with full Apollo Federation Subgraph Compatibility, is available in the repository .