Response를 할 때 응답코드를 어떻게 보내야 좋은건지 알아보았다.
* CommonResponseDto.java
@NoArgsConstructor
@AllArgsConstructor
@Data
public class CommonResponseDto<T> {
private int statusCode;
private String status;
private T data;
}
보통 statusCode만 리턴하는데, 공부하는 겸 statusCode에 대한 설명을 담은 status 변수를 담아주었다. 그리고 리턴할 데이터를 제네릭 타입으로 설정하여 어떤 데이터에 대해서도 인자로 받을 수 있도록 하였다.
* UserAPIController.java
@GetMapping("/user/dto")
public CommonResponseDto<String> 유저정보출력DTO(UserDto userDTO) {
return new CommonResponseDto<>(HttpStatus.OK.value(), HttpStatus.OK.getReasonPhrase(),
userDTO.toString());
}
쿼리스트링으로 받은 유저정보를 출력하는 메소드이며 이전 코드는 userDto.toString()을 리턴하였다면, 지금은 CommonResponseDto에 담아서 리턴하였다.
응답
@PostMapping("/user/save")
public CommonResponseDto<?> 유저회원가입(@RequestBody UserDto userDto) {
userService.saveUser(userDto);
return new CommonResponseDto<>(HttpStatus.CREATED.value(),
HttpStatus.CREATED.getReasonPhrase(), "회원가입 완료");
}
여기서 리턴하는 타입인 CommonResponseDto<?>의 <?>는 리턴할 때 리턴 타입을 정하겠다는 말과 같다. 주로 에러코드가 발생하거나 분기설정을 해줄 때 평상시의 리턴타입과 다를 수 있는데 <?>을 사용하여 해결할 수 있다.
응답
제네릭타입 T와 ?의 사용법을 알게 되었다.
'🍃 스프링' 카테고리의 다른 글
[SPRING] H2 DB 연결 중 에러 정리 (0) | 2024.01.15 |
---|---|
[SPRING] JPA 순환 참조 (0) | 2023.09.11 |
[SPRING] GET API Query String (0) | 2023.08.26 |
[SPRING] 컬렉션 (0) | 2023.07.30 |
[SPRING] Entity, DTO (0) | 2023.07.24 |