Express
This middleware provides an easy way to render a beautiful API reference based on an OpenAPI/Swagger file with Express.
Installation
npm install @scalar/express-api-reference
Usage
Set up Express and pass an URL to an OpenAPI/Swagger document to the apiReference
middleware:
Wait, but how do we get the OpenAPI document? 🤔 There are multiple ways to generate an OpenAPI file for Express. The most popular way is to use
swagger-jsdoc
.
import { apiReference } from '@scalar/express-api-reference'
app.use(
'/reference',
apiReference({
// Put your OpenAPI url here:
url: '/openapi.json',
}),
)
The Express middleware takes our universal configuration object, read more about configuration in the core package README.
Themes
The middleware comes with a custom theme for Express. 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/express-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
.
import { apiReference } from '@scalar/express-api-reference'
app.use(
'/reference',
apiReference({
cdn: 'https://cdn.jsdelivr.net/npm/@scalar/api-reference',
url: '/openapi.json',
}),
)
Usage with Express Zod API
The wonderful express-zod-api
package makes it easy to generate an OpenAPI document for your Express API.
To render a beautiful UI using Scalar, you just need to install our integration:
npm install @scalar/express-api-reference
And then hook into Express and pass the apiReference
middleware with the OpenAPI document:
import { createConfig } from 'express-zod-api'
import { apiReference } from '@scalar/express-api-reference'
const config = createConfig({
beforeRouting: ({ app, getLogger }) => {
const logger = getLogger()
logger.info('Serving the API reference at https://example.com/docs')
app.use(
'/docs',
apiReference({
// Pass your generated OpenAPI document
content: documentation.getSpecAsJson(),
}),
)
},
})
Community
We are API nerds. You too? Let's chat on Discord: https://discord.gg/scalar
License
The source code in this repository is licensed under MIT.