{"library":"redoc-express","title":"ReDoc Express Middleware","description":"redoc-express is a lightweight Express middleware designed to serve interactive API documentation using the ReDoc UI from OpenAPI/Swagger specifications. The current stable version is 2.1.3, last published 6 months ago, indicating active maintenance. It provides a simple, single-middleware setup to integrate professional-grade API documentation into Node.js Express applications without requiring complex build tools. A key differentiator is its first-class TypeScript support with comprehensive type definitions, 100% test coverage, and compatibility with Node.js 6+ (ES5) and Express 4.x/5.x. It supports both OpenAPI 3.0+ and Swagger 2.0 specifications. The package focuses on ease of use, offering sensible defaults and extensive customization options via ReDoc's configuration, including built-in CSP nonce support for enhanced security.","language":"javascript","status":"active","last_verified":"Thu Apr 23","install":{"commands":["npm install redoc-express"],"cli":null},"imports":["import { redoc } from 'redoc-express';","const { redoc } = require('redoc-express');","import { RedocOptions } from 'redoc-express';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import express from 'express';\nimport { redoc } from 'redoc-express';\nimport path from 'path';\n\nconst app = express();\nconst port = process.env.PORT || 3000;\n\n// A minimal OpenAPI spec for demonstration\nconst openApiSpec = {\n  openapi: '3.0.0',\n  info: {\n    title: 'My Awesome API',\n    version: '1.0.0',\n    description: 'An example API to demonstrate redoc-express',\n  },\n  paths: {\n    '/hello': {\n      get: {\n        summary: 'Says hello',\n        responses: {\n          '200': {\n            description: 'A greeting message',\n            content: {\n              'application/json': {\n                schema: {\n                  type: 'object',\n                  properties: {\n                    message: { type: 'string' }\n                  }\n                },\n                example: { message: 'Hello, World!' }\n              }\n            }\n          }\n        }\n      }\n    }\n  },\n  components: {\n    schemas: {}\n  }\n};\n\n// Serve the OpenAPI spec as a JSON file\napp.get('/openapi.json', (req, res) => {\n  res.json(openApiSpec);\n});\n\n// Mount the redoc-express middleware\napp.use(\n  '/docs',\n  redoc({\n    title: 'API Documentation',\n    specUrl: '/openapi.json', // URL where your OpenAPI spec is served\n    redocOptions: {\n      theme: {\n        colors: { primary: { main: '#607d8b' } },\n        typography: {\n          fontFamily: 'Montserrat, sans-serif'\n        }\n      }\n    }\n  })\n);\n\n// Basic route for the API itself\napp.get('/hello', (req, res) => {\n  res.json({ message: 'Hello, World!' });\n});\n\napp.listen(port, () => {\n  console.log(`Server running on http://localhost:${port}`);\n  console.log(`API Docs available at http://localhost:${port}/docs`);\n  console.log(`API Endpoint: http://localhost:${port}/hello`);\n});\n","lang":"typescript","description":"This quickstart sets up a basic Express server, serves a minimal OpenAPI 3.0 specification, and integrates `redoc-express` to display interactive API documentation at the '/docs' endpoint. It demonstrates passing configuration options to ReDoc for customization.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}