<aside> 🗒️ 우리의 개발 시 컨트롤러 작성법
</aside>
23-03-09(목), 이상민
예전 방식
@PostMapping("/login")
private ResponseEntity<Map<String, Object>> login(
@RequestBody UserLoginRequestDto userLoginRequestDto) {
Map<String, Object> resultMap = new HashMap<>();
HttpStatus status = HttpStatus.OK;
TokenResponseDto tokenResponseDto = null;
UserLoginResponseDto userLoginResponseDto = null;
try {
tokenResponseDto = userService.login(userLoginRequestDto);
userLoginResponseDto = userService.getLoginUser(userLoginRequestDto.getId());
resultMap.put("token", tokenResponseDto);
resultMap.put("user", userLoginResponseDto);
} catch (Exception e) {
resultMap.put("error", e.getMessage());
status = HttpStatus.INTERNAL_SERVER_ERROR;
}
return new ResponseEntity<Map<String, Object>>(resultMap, status);
}
새로운 방식
@RestController
@RequestMapping("profile")
@RequiredArgsConstructor
public class ProfileController {
private static final Logger logger = LoggerFactory.getLogger(ProfileController.class);
private final ProfileService profileService;
@GetMapping("{email}/info")
private ResponseEntity<Map<String, Object>> userInfo(
@AuthenticationPrincipal User user,
@PathVariable String email) throws Exception{
logger.info("[userInfo] request : email={}", email);
Map<String, Object> resultMap = new HashMap<>();
boolean isMe = false;
UserInfoResponse userInfoResponse = null;
if(email.equals(user.getUsername())) {
isMe = true;
userInfoResponse = profileService.getUserInfo(email);
}
resultMap.put("isMe", isMe);
resultMap.put("userInfo", userInfoResponse);
logger.info("[userInfo] response : isMe={}, userInfo={}", isMe, userInfoResponse);
return new ResponseEntity<Map<String, Object>>(resultMap, HttpStatus.OK);
}
}