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.