Awesome
NodeJS-OpenAPI-UI
A middleware collection for using the OpenAPI-UI with NodeJS
List of Contents
Usage
NestJS
import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger";
import { openApiUIReference } from "@openapi-ui/nestjs-openapi-ui";
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);
SwaggerModule.setup("swagger", app, document, {
jsonDocumentUrl: "/openapi.json",
});
app.use(
"/openapi",
openApiUIReference({
specPath: "/openapi.json",
}),
);
Read more: @openapi-ui/nestjs-openapi-ui
Express
import { openApiUIReference } from '@openapi-ui/express-openapi-ui';
import swaggerJsdoc from "swagger-jsdoc";
const openApiSpec = swaggerJsdoc({
definition: {
openapi: "3.0.0",
info: {
title: "Hello World",
version: "1.0",
},
},
apis: ["./src/*.ts"], // files containing annotations as above
});
app.get('/openapi.json', (req, res) => {
res.json(openApiSpec);
});
app.use(
'/openapi',
openApiUIReference({
specPath: '/openapi.json',
}),
);
Read more: @openapi-ui/express-openapi-ui
Hono
import { openApiUIReference } from '@openapi-ui/hono-openapi-ui';
app.doc('/openapi.json', {
info: {
title: 'Example API',
description: 'Example API description',
version: '1.0.0',
},
openapi: '3.0.0',
});
app.use(
'/openapi',
openApiUIReference({
specPath: '/openapi.json',
}),
);
Read more: @openapi-ui/hono-openapi-ui