Scalar API Reference for NestJS
This middleware provides an easy way to render a beautiful API reference based on an OpenAPI/Swagger file with NestJS.
Installation
npm install @scalar/nestjs-api-reference Usage
Set up NestJS and set up NestJS Swagger and pass an OpenAPI/Swagger document to the apiReference middleware:
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger' import { apiReference } from '@scalar/nestjs-api-reference' /* ... */ const app = await NestFactory.create(AppModule) const config = new DocumentBuilder() .setTitle('Cats example') .setDescription('The cats API description') .setVersion('1.0') .addTag('cats') .build() const document = SwaggerModule.createDocument(app, config) /* ... */ const OpenApiSpecification = /* … */ app.use( '/reference', apiReference({ content: document, }), ) Recommended: If you're serving an OpenAPI/Swagger file already, you can pass an URL, too:
import { apiReference } from '@scalar/nestjs-api-reference' app.use( '/reference', apiReference({ url: '/openapi.json', }), ) Using with Fastify Adapter
When using NestJS with the Fastify adapter instead of Express, you need to set the withFastify option to true:
/* ... */ app.use( '/reference', apiReference({ url: '/openapi.json', withFastify: true, // Required when using Fastify adapter }), ) The NestJS middleware takes our universal configuration object, read more about configuration in the core package README.
Themes
The middleware comes with a custom theme for NestJS. You can use one of the other predefined themes (alternate, default, moon, purple, solarized) or overwrite it with none. All themes come with a light and dark color scheme.
import { apiReference } from '@scalar/nestjs-api-reference' app.use( '/reference', apiReference({ theme: 'purple', url: '/openapi.json', }), ) Custom CDN
You can use a custom CDN ,default is https://cdn.jsdelivr.net/npm/@scalar/api-reference.
You can also pin the CDN to a specific version by specifying it in the CDN string like https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.25.28
You can find all available CDN versions here
import { apiReference } from '@scalar/nestjs-api-reference' app.use( '/reference', apiReference({ cdn: 'https://cdn.jsdelivr.net/npm/@scalar/api-reference@latest', content: OpenApiSpecification, }), )