/cds-swagger-ui-express

Swagger UI for CAP services

Primary LanguageJavaScriptMIT LicenseMIT

cds-swagger-ui-express

An express middleware to serve OpenAPI definitions for CAP services in Swagger UI. Builds on top of swagger-ui-express.

Preview

Installation

In your project, execute

npm install --save-dev cds-swagger-ui-express

Usage

Have this in your server.js:

const cds = require ('@sap/cds')
module.exports = cds.server

if (process.env.NODE_ENV !== 'production') {
  const cds_swagger = require ('cds-swagger-ui-express')
  cds.on ('bootstrap', app => app.use (cds_swagger()) )
}

Swagger UI is then served on /$api-docs/<service-path>, like http://localhost:4004/$api-docs/browse/

Configuration

Call cds_swagger ({...}) with the following object:

{
  "basePath": "/$api-docs", // the root path to mount the middleware on
  "apiPath": "", // the root path for the services (useful if behind a reverse proxy)
  "diagram": "true" // whether to render the YUML diagram
}

Notes

If you call cds.serve on your own in your server.js, make sure to install this middleware before, as it relies on CDS' serving events.