A middleware for using the Scalar API reference with NestJS
npm install @readyapi/nestjs-api-reference



This middleware provides an easy way to render a beautiful API reference based on an OpenAPI/Swagger file with NestJS.
``bash`
npm install @readyapi/nestjs-api-reference
Set up NestJS and set up NestJS Swagger and pass an OpenAPI/Swagger spec to the apiReference middleware:
`ts
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'
import { apiReference } from '@readyapi/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({
spec: {
content: document,
},
}),
)
`
If you’re serving an OpenAPI/Swagger file already, you can pass an URL, too:
`ts
import { apiReference } from '@readyapi/nestjs-api-reference'
app.use(
'/reference',
apiReference({
spec: {
url: '/openapi.json',
},
}),
)
`
The NestJS middleware takes our universal configuration object, read more about configuration in the core package README.
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.
`ts
import { apiReference } from '@readyapi/nestjs-api-reference'
app.use(
'/reference',
apiReference({
theme: 'purple',
spec: {
content: OpenApiSpecification,
},
}),
)
`
You can use a custom CDN ,default is https://cdn.jsdelivr.net/npm/@readyapi/api-reference.
`ts
import { apiReference } from '@readyapi/nestjs-api-reference'
app.use(
'/reference',
apiReference({
cdn: 'https://cdn.jsdelivr.net/npm/@readyapi/api-reference',
spec: {
content: OpenApiSpecification,
},
}),
)
``