Nest Swagger 3. [ Response 생성]

2022. 4. 21. 11:57Nest.js

세팅과 기본 설정 : https://crispypotato.tistory.com/199

 

Nest Swagger 1. 사용 방법 [ 세팅, summary 생성, property 생성 ]

1. 설치 2. 첫 swagger 세팅 3. api summary, property생성 1. 설치 npm install --save @nestjs/swagger swagger-ui-express 2. 첫 세팅 main.ts에서 bootstrap() 함수에 swagger를 추가 해준다. import { NestFa..

crispypotato.tistory.com

 

만드는 이유 :

기본적으로 summary, property를 설정해도 다른 개발자는 요청 하며 작업을 진행 할 수 있다.

하지만 요청 작업하기 힘든 상황이거나, 요청 하기를 귀찮을 수 있기 때문에 
A api를 실행하면 A라는 결과가 나온다고 요청 전에 미리 보여주는것을 설정 할 것이다.

 

1. 파일 생성 : users.response.dto.ts

 

2. 코드 추가 : 기본적인 DTO를 똑같은 방식으로 만들어준다. 

import { IsString } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';

export class FindUserCheckResponseDto {
  @ApiProperty({
    example: 'testid',
    description: 'id',
    required: true,
  })
  @IsString()
  id: string;

  @ApiProperty({
    example: '010155554444',
    description: 'hp',
    required: true,
  })
  @IsString()
  hp: string;

  @ApiProperty({
    example: '변경 존재 아이디 확인',
    description: 'ex',
    required: true,
  })
  @IsString()
  ex: string;
}

 

3. Controller 에 적용

사용하는 Controller에 가서 성공 시 들어가야 하는 response type에 DTO를 넣어준다.

import { UsersService } from './users.service';
import { Controller, Post, Put, Get, Param, Body } from '@nestjs/common';
import {
  FindUserCheckDto,
} from './users.dto';
import { ApiOperation, ApiResponse } from '@nestjs/swagger';
import { FindUserCheckRequestDto } from './users.response.dto.ts';

@Controller('users')
export class UsersController {
  constructor(private readonly userService: UsersService) {}
  @ApiOperation({ summary: '핸드폰번호, 아이디로 유저 존재  확인' })
  @ApiResponse({
    status: 500,
    description: 'Server Error',
  })
  @ApiResponse({
    status: 200,
    type: FindUserCheckResponseDto,
  })
  @Post('check')
  async findUserCheck(@Body() body: FindUserCheckDto) {
    return await this.userService.findUserCheck(body);
  }
}

728x90
반응형