@cmmv/swagger
v0.4.0
Published
<p align="center"> <a href="https://cmmv.io/" target="blank"><img src="https://raw.githubusercontent.com/andrehrferreira/docs.cmmv.io/main/public/assets/logo_CMMV2_icon.png" width="300" alt="CMMV Logo" /></a> </p> <p align="center">Contract-Model-Mod
Downloads
9
Readme
Description
The @cmmv/swagger
module provides an automated solution for generating Swagger API documentation based on the contracts defined in the CMMV application. The SwaggerTranspiler
class processes the contracts, extracting information such as controller names, fields, and request/response types. It generates a complete OpenAPI 3.0 specification, including routes for CRUD operations, data schemas, and authentication routes if the @cmmv/auth
module is present. The module integrates security schemes, adds necessary paths for login, registration, and user management, and handles the inclusion of common request/response formats. The generated output is written to a swagger.json
file, which can be used with Swagger UI or similar tools to provide interactive API documentation.
Installation
CMMV is available as a collection of npm packages. To install the core package, use npm:
$ pnpm add @cmmv/swagger
Quick Start
Below is a simple example of how to create a new CMMV application:
import { Application } from "@cmmv/core";
import { DefaultAdapter, DefaultHTTPModule } from "@cmmv/http";
import { AuthModule } from "@cmmv/auth";
import { SwaggerModule } from "@cmmv/swagger";
Application.create({
httpAdapter: DefaultAdapter,
wsAdapter: null,
modules: [
DefaultHTTPModule,
AuthModule,
SwaggerModule
],
contracts: [...]
})
Documentation
The complete documentation is available here.
Support
CMMV is an open-source project, and we are always looking for contributors to help improve it. If you encounter a bug or have a feature request, please open an issue on GitHub.
Stay in Touch
- Author - André Ferreira
- Twitter - @andrehrferreira
- Linkdin - @andrehrf
- Youtube - @Andrehrferreira
License
CMMV is MIT licensed.