API Reference for NestJS
Installation#
npm install @scalar/nestjs-api-referenceUsage#
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 a 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,
}),
)