Skip to content

Swagger 명세 작업 #34

@MyYeonbi

Description

@MyYeonbi

`package org.project.backend.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.project.backend.dto.LoginRequestDTO;
import org.project.backend.dto.LoginResponseDTO;
import org.project.backend.service.AuthService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;

@RestController
@RequestMapping("/api/auth")
@requiredargsconstructor
@Api(tags = "Auth API", description = "인증 관련 API") // AuthController 설명 추가
public class AuthController {

private final AuthService authService;

@ApiOperation(value = "로그인", notes = "사용자의 ID와 패스워드를 사용하여 로그인합니다.")
@PostMapping("/login")
public ResponseEntity<LoginResponseDTO> login(
        @ApiParam(value = "로그인 요청 데이터", required = true)
        @Valid @RequestBody LoginRequestDTO loginRequest) {
    // AuthService를 이용하여 로그인 처리
    LoginResponseDTO response = authService.login(loginRequest);
    return ResponseEntity.ok(response);
}

}
`

설명 :

controller와 DTO에서 Swagger 명세에 대해 다듬을 필요가 있다.
특히 swagger로 테스트할 때, id : "string"과 같은 의미 없는 샘플 데이터가 들어가고 있으며,
id는 auto increment 옵션이 있음에도 불구하고 불필요하게 샘플 데이터로 입력되는 경우가 있다.
또한, name: "홍길동", email: "lsy@naver.com"과 같은 과도한 샘플 데이터를 정리해야 한다.

작업 목표 :

1. swagger 명세 정리 :

  • controller 및 DTO에 작성된 Swagger 명세를 개선하여 더 정확하고 실제 테스트에 필요한 정보만 기입되도록 수정한다.
  • 각 필드에 대한 적절한 설명을 추가하고 불필요한 예시 데이터를 제거한다.

2. 불필요한 샘플 데이터 제거 :

  • id와 같은 auto increment필드에 대한 샘플 데이터 제거한다.
  • 과도하게 구체적인 샘플 데이터(홍길동, lsy@naver.com 등) 대신 더 일반적인 설명을 사용하여 불필요한 혼란을 방지한다.

세부 작업 항목 :

  • AuthController에 있는 login 메서드의 Swagger 명세 정리했다.
  • LoginRequestDTO, LoginResponseDTO에서 불필요한 샘플 데이터 제거 및 명세 정리했다.
  • Swagger로 테스트할 때 실제 환경과 일치하는 데이터를 사용할 수 있도록 수정했다.

참고 :

이번 수정 작업의 목적은 Swagger 명세가 더 정확하고 간결하게 유지되도록 하여, 개발 및 테스트 과정에서의 혼란을 줄이는 것이다.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions