swagger-ui-slim
TypeScript icon, indicating that this package has built-in type declarations

1.2.2 • Public • Published

Swagger-UI-Slim

Description

This package is a lightweight, no-config required, Express based Swagger-UI implementation.

It is designed for use with an Express hosted API.

All you require is an OpenAPI Spec in a JSON format!

Usage

$ npm install swagger-ui-slim

It works extremely similarly to Swagger-UI-Express with one big tweak - no extras.

/* require */
const SwaggerUI = require("swagger-ui-slim");
const spec = require("openapi.json");

app.use("/api/docs", SwaggerUI.serve, SwaggerUI.build(spec));

/* or import! */
import { serve, build } from "swagger-ui-slim";
const spec = require("openapi.json");

app.use("/api/docs", serve, build(spec));
app.listen(3000);

Now you're read to go!

Customisation

The following customisation is available:

  • Display from JSON spec
  • Display from URL provided spec
  • Provide Favicon & Title

See examples below:

/* Displays spec from JSON provided and changes website's tab title/favicon */
const spec = {
    /* insert spec here */
};
const opts = {
    customSiteTitle: "Website Title",
    faviconUrl: "/favicon.ico",
};
app.use("/api/docs", SwaggerUI.serve, SwaggerUI.build(spec, opts));

/* Displays spec from JSON provided */
const spec = {
    /* insert spec here */
};
app.use("/api/docs", SwaggerUI.serve, SwaggerUI.build(spec));

/* Displays spec from URL provided in opts.swaggerUrl */
const opts = {
    customSiteTitle: "Website Title",
    swaggerUrl: "https://petstore.swagger.io/v2/swagger.json",
    faviconUrl: "/favicon.ico",
};
app.use("/api/docs", SwaggerUI.serve, SwaggerUI.build(null, opts));

/* Displays spec from from URL provided in opts.swaggerUrl and changes website's tab title/favicon */
const spec = {
    /* insert spec here */
};
const opts = {
    customSiteTitle: "Website Title",
    swaggerUrl: "https://petstore.swagger.io/v2/swagger.json",
    faviconUrl: "/favicon.ico",
};
app.use("/api/docs", SwaggerUI.serve, SwaggerUI.build(spec, opts));

NOTE: Passing "opts.swaggerUrl" will overwrite a given JSON spec and display the spec from the provided URL.

This UI will only display a single service and display customisation is disabled. This is to provide a no-config setup.

Package Sidebar

Install

npm i swagger-ui-slim

Weekly Downloads

2

Version

1.2.2

License

ISC

Unpacked Size

7.98 kB

Total Files

4

Last publish

Collaborators

  • incendiarybean