0.4.0 • Published 9 months ago

@cmmv/swagger v0.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

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

License

CMMV is MIT licensed.