diff --git a/src/main/java/com/jiyunio/todolist/ResponseDTO.java b/src/main/java/com/jiyunio/todolist/ResponseDTO.java index 67b9c90..e22e5f9 100644 --- a/src/main/java/com/jiyunio/todolist/ResponseDTO.java +++ b/src/main/java/com/jiyunio/todolist/ResponseDTO.java @@ -7,14 +7,12 @@ @Getter @Setter public class ResponseDTO { - Long id; - String userId; + String result; String msg; @Builder - ResponseDTO(Long id, String userId, String msg) { - this.id = id; - this.userId = userId; + ResponseDTO(String result, String msg) { + this.result = result; this.msg = msg; } } diff --git a/src/main/java/com/jiyunio/todolist/category/CategoryController.java b/src/main/java/com/jiyunio/todolist/category/CategoryController.java index 16988ea..ad7cdb6 100644 --- a/src/main/java/com/jiyunio/todolist/category/CategoryController.java +++ b/src/main/java/com/jiyunio/todolist/category/CategoryController.java @@ -1,7 +1,9 @@ package com.jiyunio.todolist.category; import com.jiyunio.todolist.ResponseDTO; -import jakarta.validation.Valid; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.constraints.NotBlank; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; @@ -13,11 +15,14 @@ @RestController @RequiredArgsConstructor +@Validated +@Tag(name = "Category", description = "카테고리 API") public class CategoryController { private final CategoryService categoryService; @PostMapping("/category{memberId}") - public ResponseEntity createCategory(@PathVariable Long memberId, @Validated @RequestParam @NotBlank String categoryName) { + @Operation(summary = "카테고리 생성") + public ResponseEntity createCategory(@Parameter(description = "member의 id") @PathVariable Long memberId, @RequestParam @NotBlank String categoryName) { categoryService.createCategory(memberId, categoryName); ResponseDTO responseDTO = ResponseDTO.builder() .msg("카테고리 생성 성공") @@ -26,12 +31,14 @@ public ResponseEntity createCategory(@PathVariable Long memberId, @ } @GetMapping("/category/{memberId}") - public List getCategory(@PathVariable Long memberId) { + @Operation(summary = "카테고리 조회") + public List getCategory(@Parameter(description = "member의 id") @PathVariable Long memberId) { return categoryService.getCategory(memberId); } @PutMapping("/category/{categoryId}") - public ResponseEntity updateCategory(@PathVariable Long categoryId, @RequestParam @NotBlank String categoryName) { + @Operation(summary = "카테고리 수정") + public ResponseEntity updateCategory(@Parameter(description = "카테고리의 id") @PathVariable Long categoryId, @RequestParam @NotBlank String categoryName) { categoryService.updateCategory(categoryId, categoryName); ResponseDTO responseDTO = ResponseDTO.builder() .msg("카테고리 수정 성공") @@ -40,7 +47,8 @@ public ResponseEntity updateCategory(@PathVariable Long categoryId, } @DeleteMapping("/category/{categoryId}") - public ResponseEntity deleteCategory(@PathVariable Long categoryId) { + @Operation(summary = "카테고리 삭제") + public ResponseEntity deleteCategory(@Parameter(description = "카테고리의 id") @PathVariable Long categoryId) { categoryService.deleteCategory(categoryId); ResponseDTO responseDTO = ResponseDTO.builder() .msg("카테고리 삭제 성공") diff --git a/src/main/java/com/jiyunio/todolist/category/GetCategoryDTO.java b/src/main/java/com/jiyunio/todolist/category/GetCategoryDTO.java index dcc3f89..3f54434 100644 --- a/src/main/java/com/jiyunio/todolist/category/GetCategoryDTO.java +++ b/src/main/java/com/jiyunio/todolist/category/GetCategoryDTO.java @@ -1,12 +1,13 @@ package com.jiyunio.todolist.category; -import com.jiyunio.todolist.member.Member; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; import lombok.Getter; import lombok.Setter; @Getter @Setter +@Schema(description = "카테고리 조회") public class GetCategoryDTO { private String category; diff --git a/src/main/java/com/jiyunio/todolist/customError/CustomException.java b/src/main/java/com/jiyunio/todolist/customError/CustomException.java index 3fca9a7..b3a8fe0 100644 --- a/src/main/java/com/jiyunio/todolist/customError/CustomException.java +++ b/src/main/java/com/jiyunio/todolist/customError/CustomException.java @@ -1,6 +1,6 @@ package com.jiyunio.todolist.customError; -import lombok.*; +import lombok.Getter; import org.springframework.http.HttpStatus; @Getter @@ -8,7 +8,7 @@ public class CustomException extends RuntimeException { private final HttpStatus httpStatus; private final ErrorCode errorCode; - public CustomException(HttpStatus httpStatus, ErrorCode errorCode){ + public CustomException(HttpStatus httpStatus, ErrorCode errorCode) { this.httpStatus = httpStatus; this.errorCode = errorCode; } diff --git a/src/main/java/com/jiyunio/todolist/customError/CustomExceptionHandler.java b/src/main/java/com/jiyunio/todolist/customError/CustomExceptionHandler.java index 3d91aa3..027b6b0 100644 --- a/src/main/java/com/jiyunio/todolist/customError/CustomExceptionHandler.java +++ b/src/main/java/com/jiyunio/todolist/customError/CustomExceptionHandler.java @@ -1,13 +1,35 @@ package com.jiyunio.todolist.customError; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; +import java.util.ArrayList; +import java.util.List; + @ControllerAdvice public class CustomExceptionHandler { @ExceptionHandler(CustomException.class) - protected ResponseEntity handleCustomException(CustomException e){ + protected ResponseEntity handleCustomException(CustomException e) { return ErrorDTO.toResponseEntity(e); } + + @ExceptionHandler(MethodArgumentNotValidException.class) + protected ResponseEntity> beanValidationException(MethodArgumentNotValidException e) { + List list = e.getBindingResult().getFieldErrors(); + List responseDTOList = new ArrayList<>(); + + for (FieldError error : list) { + ErrorDTO errorDTO = ErrorDTO.builder() + .code("400_Bad_Request") + .msg(error.getDefaultMessage()) + .build(); + + responseDTOList.add(errorDTO); + } + return new ResponseEntity<>(responseDTOList, HttpStatus.BAD_REQUEST); + } } diff --git a/src/main/java/com/jiyunio/todolist/customError/ErrorDTO.java b/src/main/java/com/jiyunio/todolist/customError/ErrorDTO.java index b10365d..8b9c580 100644 --- a/src/main/java/com/jiyunio/todolist/customError/ErrorDTO.java +++ b/src/main/java/com/jiyunio/todolist/customError/ErrorDTO.java @@ -1,4 +1,5 @@ package com.jiyunio.todolist.customError; + import lombok.Builder; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/jiyunio/todolist/member/MemberController.java b/src/main/java/com/jiyunio/todolist/member/MemberController.java index 09a48b8..156a82d 100644 --- a/src/main/java/com/jiyunio/todolist/member/MemberController.java +++ b/src/main/java/com/jiyunio/todolist/member/MemberController.java @@ -4,57 +4,44 @@ import com.jiyunio.todolist.member.dto.ChangeUserPwDTO; import com.jiyunio.todolist.member.dto.SignInDTO; import com.jiyunio.todolist.member.dto.SignUpDTO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.validation.BindingResult; -import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.List; - @RestController @RequiredArgsConstructor +@Tag(name = "Member", description = "회원 API") public class MemberController { private final MemberService memberService; @PostMapping("/signUp") - public ResponseEntity signUp(@Valid @RequestBody SignUpDTO signUpDto, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - List responseDTOList = returnBindingResult(bindingResult); - return new ResponseEntity<>(responseDTOList, HttpStatus.BAD_REQUEST); - } - + @Operation(summary = "회원가입", description = "아이디, 비밀번호, 이메일 이용\n\n 아이디 : 5 ~ 10자 \n\n 비밀번호: 8~16자의 영문 대/소문자, 숫자, 특수문자") + public ResponseEntity signUp(@Valid @RequestBody SignUpDTO signUpDto) { ResponseDTO responseDTO = ResponseDTO.builder() - .userId(memberService.signUp(signUpDto)) // 화면에 "ㅇㅇ님 환영합니다" 글씨 원함 + .result(memberService.signUp(signUpDto)) // 화면에 "ㅇㅇ님 환영합니다" 글씨 원함 .msg("회원가입 성공") .build(); return new ResponseEntity<>(responseDTO, HttpStatus.CREATED); } @PostMapping("/signIn") - public ResponseEntity signIn(@Valid @RequestBody SignInDTO signInDto, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - List responseDTOList = returnBindingResult(bindingResult); - return new ResponseEntity<>(responseDTOList, HttpStatus.BAD_REQUEST); - } - + @Operation(summary = "로그인", description = "아이디와 비밀번호 이용") + public ResponseEntity signIn(@Valid @RequestBody SignInDTO signInDto) { ResponseDTO responseDTO = ResponseDTO.builder() - .userId(memberService.signIn(signInDto)) // 로그인하면 회원 페이지에 ㅇㅇ님 원함 + .result(memberService.signIn(signInDto)) // 로그인하면 회원 페이지에 ㅇㅇ님 원함 .msg("로그인 성공") .build(); return ResponseEntity.ok(responseDTO); } @PutMapping("/{id}/update") - public ResponseEntity updateUserPw(@PathVariable Long id, @Valid @RequestBody ChangeUserPwDTO changeUserPwDto, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - List responseDTOList = returnBindingResult(bindingResult); - return new ResponseEntity<>(responseDTOList, HttpStatus.BAD_REQUEST); - } - + @Operation(summary = "회원 비밀번호 수정", description = "비밀번호, 수정 비밀번호 이용") + public ResponseEntity updateUserPw(@Parameter(description = "member의 id") @PathVariable Long id, @Valid @RequestBody ChangeUserPwDTO changeUserPwDto) { memberService.updateUserPw(id, changeUserPwDto); ResponseDTO responseDTO = ResponseDTO.builder() .msg("비밀번호 변경 성공") @@ -63,23 +50,12 @@ public ResponseEntity updateUserPw(@PathVariable Long id, @Valid @RequestBody } @DeleteMapping("/{id}/delete") - public ResponseEntity deleteMember(@PathVariable Long id, @RequestParam String userPw) { + @Operation(summary = "회원 탈퇴", description = "비밀번호 이용") + public ResponseEntity deleteMember(@Parameter(description = "member의 id") @PathVariable Long id, @RequestParam String userPw) { memberService.deleteMember(id, userPw); ResponseDTO responseDTO = ResponseDTO.builder() .msg("회원 탈퇴 성공") .build(); return new ResponseEntity<>(responseDTO, HttpStatus.NO_CONTENT); } - - public List returnBindingResult(BindingResult bindingResult) { - List list = bindingResult.getFieldErrors(); - List responseDTOList = new ArrayList<>(); - for (FieldError error : list) { - ResponseDTO responseDTO = ResponseDTO.builder() - .msg(error.getDefaultMessage()) - .build(); - responseDTOList.add(responseDTO); - } - return responseDTOList; - } } diff --git a/src/main/java/com/jiyunio/todolist/member/MemberService.java b/src/main/java/com/jiyunio/todolist/member/MemberService.java index fc61f2f..c1f9822 100644 --- a/src/main/java/com/jiyunio/todolist/member/MemberService.java +++ b/src/main/java/com/jiyunio/todolist/member/MemberService.java @@ -5,6 +5,7 @@ import com.jiyunio.todolist.member.dto.ChangeUserPwDTO; import com.jiyunio.todolist.member.dto.SignInDTO; import com.jiyunio.todolist.member.dto.SignUpDTO; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @@ -14,7 +15,7 @@ public class MemberService { private final MemberRepository memberRepository; - public String signUp(SignUpDTO signUpDto) { + public String signUp(@Valid SignUpDTO signUpDto) { if (memberRepository.existsByUserEmail(signUpDto.getUserEmail())) { // 이미 존재하는 이메일 throw new CustomException(HttpStatus.BAD_REQUEST, ErrorCode.EXIST_EMAIL); @@ -39,7 +40,7 @@ public String signUp(SignUpDTO signUpDto) { throw new CustomException(HttpStatus.BAD_REQUEST, ErrorCode.NOT_SAME_CONFIRM_PASSWORD); } - public String signIn(SignInDTO signInDto) { + public String signIn(@Valid SignInDTO signInDto) { if (memberRepository.existsByUserId(signInDto.getUserId())) { Member member = memberRepository.findByUserId(signInDto.getUserId()).get(); if (member.getUserPw().equals(signInDto.getUserPw())) { @@ -53,7 +54,7 @@ public String signIn(SignInDTO signInDto) { throw new CustomException(HttpStatus.NOT_FOUND, ErrorCode.WRONG_USERID_PASSWORD); } - public void updateUserPw(Long id, ChangeUserPwDTO changeUserPwDto) { + public void updateUserPw(Long id, @Valid ChangeUserPwDTO changeUserPwDto) { Member member = memberRepository.findById(id).get(); if (member.getUserPw().equals(changeUserPwDto.getUserPw())) { // 회원 비밀번호 확인 if (changeUserPwDto.getChangePw().equals(changeUserPwDto.getConfirmChangePw())) { diff --git a/src/main/java/com/jiyunio/todolist/member/dto/ChangeUserPwDTO.java b/src/main/java/com/jiyunio/todolist/member/dto/ChangeUserPwDTO.java index 5e9f53b..5d62e69 100644 --- a/src/main/java/com/jiyunio/todolist/member/dto/ChangeUserPwDTO.java +++ b/src/main/java/com/jiyunio/todolist/member/dto/ChangeUserPwDTO.java @@ -1,18 +1,25 @@ package com.jiyunio.todolist.member.dto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; import lombok.Getter; import lombok.Setter; @Getter @Setter +@Schema(description = "회원 비밀번호 수정") public class ChangeUserPwDTO { @NotBlank(message = "비밀번호를 입력하세요.") + @Schema(description = "회원 비밀번호") private String userPw; @NotBlank(message = "변경 비밀번호를 입력하세요.") + @Pattern(regexp = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*\\W)(?=\\S+$).{8,16}") + @Schema(description = "회원 수정 비밀번호", example = "qwer1234!") private String changePw; @NotBlank(message = "확인 비밀번호를 입력하세요.") + @Schema(description = "회원 수정 확인 비밀번호") private String confirmChangePw; } diff --git a/src/main/java/com/jiyunio/todolist/member/dto/SignInDTO.java b/src/main/java/com/jiyunio/todolist/member/dto/SignInDTO.java index 8830ebd..7e75d3d 100644 --- a/src/main/java/com/jiyunio/todolist/member/dto/SignInDTO.java +++ b/src/main/java/com/jiyunio/todolist/member/dto/SignInDTO.java @@ -1,5 +1,6 @@ package com.jiyunio.todolist.member.dto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; @@ -8,8 +9,10 @@ @Setter public class SignInDTO { @NotBlank(message = "아이디를 입력하세요.") + @Schema(example = "qwe123") private String userId; @NotBlank(message = "비밀번호를 입력하세요.") + @Schema(example = "qwer1234!") private String userPw; } diff --git a/src/main/java/com/jiyunio/todolist/member/dto/SignUpDTO.java b/src/main/java/com/jiyunio/todolist/member/dto/SignUpDTO.java index 280b1e1..79c46af 100644 --- a/src/main/java/com/jiyunio/todolist/member/dto/SignUpDTO.java +++ b/src/main/java/com/jiyunio/todolist/member/dto/SignUpDTO.java @@ -1,5 +1,6 @@ package com.jiyunio.todolist.member.dto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Pattern; @@ -8,17 +9,21 @@ @Getter @Setter +@Schema(description = "회원가입") public class SignUpDTO { + @NotBlank(message = "아이디를 입력하세요.") @Pattern(regexp = "(?=.*[a-zA-Z])(?=\\S+$).{5,10}", message = "아이디 : 5~10자") + @Schema(description = "회원의 userId : 영문 대/소문자 5~10자", example = "qwe123") private String userId; - @NotBlank(message = "비밀번호를 입력하세요.") @Pattern(regexp = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*\\W)(?=\\S+$).{8,16}", message = "비밀번호: 8~16자의 영문 대/소문자, 숫자, 특수문자를 사용하십쇼.") + @Schema(description = "회원의 비밀번호 : 8~16자의 영문 대/소문자, 숫자, 특수문자", example = "qwer123!") private String userPw; @NotBlank(message = "이메일를 입력하세요.") @Email(message = "이메일 형식이 맞지 않습니다.") + @Schema(description = "회원의 이메일", example = "qwer@google.com") private String userEmail; @NotBlank(message = "확인 비밀번호를 입력하세요.") diff --git a/src/main/java/com/jiyunio/todolist/todo/Todo.java b/src/main/java/com/jiyunio/todolist/todo/Todo.java index 8adc6dc..4021981 100644 --- a/src/main/java/com/jiyunio/todolist/todo/Todo.java +++ b/src/main/java/com/jiyunio/todolist/todo/Todo.java @@ -20,7 +20,7 @@ public class Todo { private Long id; @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "memberId") + @JoinColumn(name = "member Id") private Member member; @Lob // 길이 제한 X diff --git a/src/main/java/com/jiyunio/todolist/todo/TodoController.java b/src/main/java/com/jiyunio/todolist/todo/TodoController.java index bb468db..5d9a2df 100644 --- a/src/main/java/com/jiyunio/todolist/todo/TodoController.java +++ b/src/main/java/com/jiyunio/todolist/todo/TodoController.java @@ -4,29 +4,27 @@ import com.jiyunio.todolist.todo.dto.CreateTodoDTO; import com.jiyunio.todolist.todo.dto.GetTodoDTO; import com.jiyunio.todolist.todo.dto.UpdateTodoDTO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.validation.BindingResult; -import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; import java.util.List; @RestController @RequestMapping("/todo") @RequiredArgsConstructor +@Tag(name = "Todo", description = "todo API") public class TodoController { private final TodoService todoService; @PostMapping("/{memberId}") - public ResponseEntity createTodo(@PathVariable Long memberId, @Valid @RequestBody CreateTodoDTO createTodo, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - List responseDTOList = returnBindingResult(bindingResult); - return new ResponseEntity<>(responseDTOList, HttpStatus.BAD_REQUEST); - } + @Operation(summary = "todo 생성", description = "todo checked 기본 값 = False") + public ResponseEntity createTodo(@Parameter(description = "member의 id") @PathVariable Long memberId, @Valid @RequestBody CreateTodoDTO createTodo) { todoService.createTodo(memberId, createTodo); ResponseDTO responseDTO = ResponseDTO.builder() .msg("Todo 생성 완료") @@ -35,17 +33,14 @@ public ResponseEntity createTodo(@PathVariable Long memberId, @Valid @Request } @GetMapping("/{memberId}") - public List getTodo(@PathVariable Long memberId) { + @Operation(summary = "todo 조회") + public List getTodo(@Parameter(description = "member의 id") @PathVariable Long memberId) { return todoService.getTodo(memberId); } @PutMapping("/{todoId}") - public ResponseEntity updateTodo(@PathVariable Long todoId, @Valid @RequestBody UpdateTodoDTO updateTodo, BindingResult bindingResult) { - if (bindingResult.hasErrors()) { - List responseDTOList = returnBindingResult(bindingResult); - return new ResponseEntity<>(responseDTOList, HttpStatus.BAD_REQUEST); - } - + @Operation(summary = "todo 수정") + public ResponseEntity updateTodo(@Parameter(description = "todo의 id") @PathVariable Long todoId, @Valid @RequestBody UpdateTodoDTO updateTodo) { todoService.updateTodo(todoId, updateTodo); ResponseDTO responseDTO = ResponseDTO.builder() .msg("Todo 수정 완료") @@ -54,23 +49,12 @@ public ResponseEntity updateTodo(@PathVariable Long todoId, @Valid @RequestBo } @DeleteMapping("/{todoId}") - public ResponseEntity deleteTodo(@PathVariable Long todoId) { + @Operation(summary = "todo 삭제") + public ResponseEntity deleteTodo(@Parameter(description = "todo의 id") @PathVariable Long todoId) { todoService.deleteTodo(todoId); ResponseDTO responseDTO = ResponseDTO.builder() .msg("Todo 삭제 완료") .build(); return new ResponseEntity<>(responseDTO, HttpStatus.NO_CONTENT); } - - public List returnBindingResult(BindingResult bindingResult) { - List list = bindingResult.getFieldErrors(); - List responseDTOList = new ArrayList<>(); - for (FieldError error : list) { - ResponseDTO responseDTO = ResponseDTO.builder() - .msg(error.getDefaultMessage()) - .build(); - responseDTOList.add(responseDTO); - } - return responseDTOList; - } } diff --git a/src/main/java/com/jiyunio/todolist/todo/dto/CreateTodoDTO.java b/src/main/java/com/jiyunio/todolist/todo/dto/CreateTodoDTO.java index 310cd50..90182c3 100644 --- a/src/main/java/com/jiyunio/todolist/todo/dto/CreateTodoDTO.java +++ b/src/main/java/com/jiyunio/todolist/todo/dto/CreateTodoDTO.java @@ -1,5 +1,6 @@ package com.jiyunio.todolist.todo.dto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Getter; @@ -9,6 +10,7 @@ @Getter @Setter +@Schema(description = "todo 생성 : todo checked 기본 값 False") public class CreateTodoDTO { @NotBlank(message = "todo를 작성해주세요.") private String content; diff --git a/src/main/java/com/jiyunio/todolist/todo/dto/GetTodoDTO.java b/src/main/java/com/jiyunio/todolist/todo/dto/GetTodoDTO.java index 04e9197..75fc145 100644 --- a/src/main/java/com/jiyunio/todolist/todo/dto/GetTodoDTO.java +++ b/src/main/java/com/jiyunio/todolist/todo/dto/GetTodoDTO.java @@ -1,5 +1,6 @@ package com.jiyunio.todolist.todo.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; import lombok.Getter; import lombok.Setter; @@ -8,6 +9,7 @@ @Getter @Setter +@Schema(description = "todo 조회") public class GetTodoDTO { private String content; diff --git a/src/main/java/com/jiyunio/todolist/todo/dto/UpdateTodoDTO.java b/src/main/java/com/jiyunio/todolist/todo/dto/UpdateTodoDTO.java index 66e54ac..a4d0dcd 100644 --- a/src/main/java/com/jiyunio/todolist/todo/dto/UpdateTodoDTO.java +++ b/src/main/java/com/jiyunio/todolist/todo/dto/UpdateTodoDTO.java @@ -1,5 +1,6 @@ package com.jiyunio.todolist.todo.dto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Getter; @@ -9,6 +10,7 @@ @Getter @Setter +@Schema(description = "todo 수정") public class UpdateTodoDTO { @NotBlank(message = "todo를 작성해주세요.") private String content;