본문 바로가기
개발/Field-Passer 프로젝트

[Field-Passer 프로젝트] Rest API에서 JSON 반환하기

by 코코의 주인 2023. 1. 29.

로그인에 성공했을 때 아래와 같은 결과를 JSON으로 넘겨줘야 한다.

밑에 resultData만 넘겨줘야 하는 거면 responceDTO를 만들어서 그대로 반환하겠지만 resultCode도 같이 반환해야 하고 몇몇 형식은 resultData의 개수까지 반환하는 경우가 있기 때문에 어떻게 해야 편하고 쉽게 반환할 수 있을지 고민이었다.

그래서 이번 프로젝트에서는 VO를 사용하기로 했다.

 

AdminLoginResponceDTO

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Builder
public class AdminLoginResponceDTO {

    private String email;
    private String profileImg;
    private String memberName;
}

AdminLoginVO

@EqualsAndHashCode
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Builder
public class AdminLoginVO {

    private String resultCode;
    private AdminLoginResponceDTO resultData;
}

 

@PostMapping("/admin/auth/login")
@ResponseBody
public AdminLoginVO adminLogin(@RequestBody AdminLoginRequestDTO adminLoginRequest, HttpSession session) {
    try {
        return adminService.adminLogin(adminLoginRequest, session);
    } catch (Exception e) {
        return AdminLoginVO.builder()
                .resultCode(e.getMessage())
                .build();
    }
}

resultData 에 AdminLoginReponceDTO를 사용하고 ResponseBody를 사용해서 반환하면 원하는 결과를 얻을 수 있다.

로그인이 실패했을 때는 resultCode에 로그인 서비스에서 주는 Error메세지를 넣어서 클라이언트에게 결과를 알려줬다.

댓글