728x90

🚨  이슈 발생

 /**
     * 회원가입 API
     * [POST] /users
     * @return BaseResponse<PostUserRes>
     */
    @ResponseBody
    @PostMapping("")
    public BaseResponse<TestPostUserRes> createUser(@RequestBody TestPostUserReq testpostUserReq) {
        //닉네임 입력을 안했을 때
        if(testpostUserReq.getUserNickname() == null){
            return new BaseResponse<>(POST_USERS_EMPTY_NICKNAME);
        }

        try{
            TestPostUserRes postUserRes = userService.createUser(testpostUserReq);
            return new BaseResponse<>(postUserRes);
        } catch(BaseException exception){
            return new BaseResponse<>((exception.getStatus()));
        }
    }

 

회원가입 API작성 시 Controller에서 분명히 Validation처리 (닉네임을 입력하지 않을 경우 POST_USERS_EMPTY_NICKNAME 에러 코드를 발생시키기)가 작동하지 않고 공백으로 그대로 DB에 저장되는 이슈가 발생하였다.

 

 

의도대로라면 

if문이 작동하여 POST_USERS_EMPTY_NICKNAME이 발동되어야 하는데 그렇지 못한 이슈인 것이다.

 

 

 

 

 

 

👌  이슈 해결

문제는 POST를 하는 방식에서 있었다.

나는 기존에 닉네임을 입력하지 않는 경우를 

 

{
    "userNickname" : "",
    "userEmail" : "nick123@naver.com",
    "userPassword" : "!1234",
    "status" : "Active",
    "ID" : "123"
}

 

다음과 같이 Value 부분에 아무것도 넣지 않고 POST 하는 방식으로 처리하려 했다.

 

 

하지만 Validation이 작동하기 위해서는

 

{
    "userEmail" : "nick123@naver.com",
    "userPassword" : "!1234",
    "status" : "Active",
    "ID" : "123"
}

 

다음과 같이 Key와 Value 모두 없애고 POST를 해야 정상적으로 Validation이 작동하는 것을 확인할 수 있었다.

 

 

 

정상작동 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

복사했습니다!