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
yarn add koa
yarn add graphql
yarn add graphql-yoga@three
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')
})
You can also check a full example on our GitHub repository here
Last updated on October 6, 2022