Skip to Content
Yoga
⚠️
Warning

This is the documentation for the old GraphQL Yoga v3.
We recommend upgrading to the latest 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 middlewares written for Koa with GraphQL Yoga.

Installation

Terminal
yarn add koa yarn add graphql yarn add graphql-yoga

Example

import Koa from 'koa' import { createYoga } from 'graphql-yoga' const app = new Koa() const yoga = createYoga<Koa.ParameterizedContext>() // Bind GraphQL Yoga to `/graphql` endpoint app.use(async (ctx) => { // Second parameter adds Koa's context into GraphQL Context const response = await yoga.handleNodeRequest(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/${yoga.graphqlEndpoint}` ) })

You can also check a full example on our GitHub repository here