⚠️
This is the documentation for the old GraphQL Yoga version 2. We recommend upgrading to the latest GraphQL Yoga version 5.
Migrate to GraphQL Yoga v5
Migrate to GraphQL Yoga v5
Integration with Koa
Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. GraphQL Yoga can be integrated easily as a route to the existing Koa application with a few lines of code. So you can benefit from middlewares written for Koa with GraphQL Yoga.
Installation
Terminal
yarn add @graphql-yoga/node koa graphql
Example
import Koa from 'koa'
import { createServer } from '@graphql-yoga/node'
const app = new Koa()
const graphQLServer = createServer<Koa.ParameterizedContext>()
// Bind GraphQL Yoga to `/graphql` endpoint
app.use(async (ctx) => {
// Second parameter adds Koa's context into GraphQL Context
const response = await graphQLServer.handleIncomingMessage(ctx.req, ctx)
// Set status code
ctx.status = response.status
// Set headers
response.headers.forEach((value, key) => {
ctx.append(key, value)
})
// Converts ReadableStream to a NodeJS Stream
ctx.body = response.body
})
app.listen(4000, () => {
console.log('Running a GraphQL API server at http://localhost:4000')
})
💡
You can also check a full example on our GitHub repository here.