- 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
'프레임워크 > Spring, Spring Boot' 카테고리의 다른 글
[메타코딩] 스프링부트 강좌 42강(블로그 프로젝트) - READ COMMIT의 정합성 문제 (1) | 2022.09.04 |
---|---|
[메타코딩] 스프링부트 강좌 41강(블로그 프로젝트) - DB격리수준 READ COMMIT (1) | 2022.09.04 |
[메타코딩] 스프링부트 강좌 39강(블로그 프로젝트) - 회원가입 하기 두번째 완료 (1) | 2022.08.10 |
[메타코딩] 스프링부트 강좌 38강(블로그 프로젝트) - 회원가입 하기 Ajax요청 (0) | 2022.08.09 |
[메타코딩] 스프링부트 강좌 37강(블로그 프로젝트) - Ajax를 사용하는 이유 두번째 (1) | 2022.08.09 |