Giter Site home page Giter Site logo

nestjs_swagger_utils's Introduction

NestJs Swagger Utils

--

Installation

$ npm i nestjs-swagger-utils

Usage

import { Controller, Get } from '@nestjs/common';
import { ApiResponse } from '@nestjs/swagger';
import { IHealthService } from './adapter';
import { Swagger } from 'nestjs-swagger-utils';

@Controller()
export class HealthController {
  constructor(private readonly healthService: IHealthService) {}

  @Get('/health')
  @ApiResponse(Swagger.defaultResponseJSON({ json: { "info": "App UP" }, status: 200, description: 'App UP' }))
  @ApiResponse(Swagger.defaultResponseError({ error: { "message": "App Down" }, status: 500, description: 'App Down' }))
  async getHealth(): Promise<string> {
    return this.healthService.getText();
  }
}

If you prefer to centralized swagger documentation

  • Create a Swagger class on each module, exemple
health
     ├── adapter.ts
     ├── controller.ts
     ├── module.ts
     ├── service.ts
     ├── swagger.ts
--swagger.ts
import { Swagger } from 'nestjs-swagger-utils';

export class SwagggerResponse {
  static getHealth = {
    200: Swagger.defaultResponseJSON({ json: { 'info': 'App UP' }, status: 200, description: 'App UP' }),
    500: Swagger.defaultResponseError({
      error: { 'message': 'App Down' },
      status: 500,
      description: 'App Down',
    }),
  };
}

export class SwagggerRequest {
  /** If requesters has a body.  */
}
--controller.ts
import { Controller, Get } from '@nestjs/common';
import { ApiResponse, ApiTags } from '@nestjs/swagger';

import { IHealthService } from './adapter';
import { SwagggerResponse } from './swagger';

@Controller()
@ApiTags('health')
export class HealthController {
  constructor(private readonly healthService: IHealthService) {}

  @Get('/health')
  @ApiResponse(SwagggerResponse.getHealth[200])
  @ApiResponse(SwagggerResponse.getHealth[500])
  async getHealth(): Promise<string> {
    return this.healthService.getText();
  }
}

The following is a list of all the people that have contributed to nest-boilerplate. Thanks for your contributions!

mikemajesty

License

It is available under the MIT license. License

nestjs_swagger_utils's People

Contributors

mikemajesty avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.