This plugin provides an easy way to render a beautiful API reference based on a OpenAPI/Swagger file with Fastify.
npm install @scalar/fastify-api-reference
And then register it with Fastify:
await fastify.register(require('@scalar/fastify-api-reference'), {
routePrefix: '/reference',
})
If you have a OpenAPI/Swagger file already, you can pass an URL to the plugin:
// Render an API reference for a given OpenAPI/Swagger spec URL
fastify.register(require('@scalar/fastify-api-reference'), {
routePrefix: '/reference',
configuration: {
title: 'Our API Reference',
spec: {
url: '/openapi.json',
},
},
})
With @fastify/swagger you can even generate your OpenAPI documents from the registered routes and directly pass it to the plugin:
await fastify.register(require('@scalar/fastify-api-reference'), {
routePrefix: '/reference',
configuration: {
spec: {
content: () => fastify.swagger(),
},
},
})
Actually, we’re picking it up automatically, so this would be enough:
await fastify.register(require('@scalar/fastify-api-reference'), {
routePrefix: '/reference',
})
Or, if you just have a static OpenAPI spec, you can directly pass it, too:
await fastify.register(require('@scalar/fastify-api-reference'), {
routePrefix: '/reference',
configuration: {
spec: {
content: { … }
},
},
})
We wrote a detailed integration guide for Fastify.
The fastify plugin takes our universal configuration object, read more about configuration in the core package README.
By default, we’re using a custom Fastify theme and it’s beautiful. But you can choose one of our other themes, too:
await fastify.register(require('@scalar/fastify-api-reference'), {
routePrefix: '/reference',
configuration: {
theme: 'purple',
},
})