Skip to content

Latest commit

 

History

History
105 lines (79 loc) · 3.07 KB

README.md

File metadata and controls

105 lines (79 loc) · 3.07 KB

Scalar NestJS API Reference Plugin

Version Downloads License Discord

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 spec 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({
      spec: {
        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({
    spec: {
      url: '/openapi.json',
    },
  }),
)

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',
    spec: {
      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',
    spec: {
      content: OpenApiSpecification,
    },
  }),
)