프레임워크/Spring, Spring Boot
[메타코딩] 스프링부트 강좌 40강(블로그 프로젝트) - ResponseDto 수정
고용인
2022. 9. 4. 21:41
- ResponseDto.java의 status의 형태를 HttpStatus -> int로 변경합니다.
package com.cos.blog.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ResponseDto<T> {
int status;
T data;
}
- UserApiController.java
package com.cos.blog.controller.api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.cos.blog.dto.ResponseDto;
import com.cos.blog.model.RoleType;
import com.cos.blog.model.User;
import com.cos.blog.service.UserService;
@RestController
public class UserApiController {
@Autowired
private UserService userService;
@PostMapping("/api/user")
public ResponseDto<Integer> save(@RequestBody User user) {
user.setRole(RoleType.USER);
int result = userService.회원가입(user);
return new ResponseDto<Integer>(HttpStatus.OK.value(), result);
}
}
- GlobalExceptionHandler.java
package com.cos.blog.handler;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;
import com.cos.blog.dto.ResponseDto;
@ControllerAdvice
@RestController
public class GlobalExceptionHandler {
@ExceptionHandler(value=Exception.class)
public ResponseDto<String> handleArgumentException(IllegalArgumentException e) {
return new ResponseDto<String>(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage());
}
}
강의 주소 : https://youtu.be/f5zHFb1BHmY