@cmmv/swagger

0.4.0 • Public • Published

CMMV Logo

Contract-Model-Model-View (CMMV)
A minimalistic framework for building scalable and modular applications using TypeScript contracts.

NPM Version Package License

DocumentationReport Issue

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.

Readme

Keywords

Package Sidebar

Install

npm i @cmmv/swagger

Weekly Downloads

1

Version

0.4.0

License

MIT

Unpacked Size

35.3 kB

Total Files

21

Last publish

Collaborators

  • andrehrf