postman으로 API 테스트를 하다 POST 요청이 제대로 되지 않는 상황에 마주했다.
<form class="login-form" action="/user/loginPost" method="post">
<input class="login-text" type="text" name="uid" placeholder="ID" required autocomplete="off"/>
<input class="login-text" type="password" name="upw" placeholder="PASSWORD" required/>
<label class="login-checkbox__row">
<input class="login-checkbox" type="checkbox" name="useCookie"/>
<span>REMEBER</span>
</label>
<button class="login-btn" type="submit"> Login </button>
</form>
위와같은 단순한 로그인 창이었고, POST 방식으로 테스트를 하면 원하는 결과값이 반환될 줄 알았다.
form-data를 체크하고 값을 넣어 요청을 보냈지만 돌아오는 응답은 loginError시 나타나는 응답이었다.
문제를 해결하기 위해 postman
,content-type
그리고 spring에서 관련된 어노테이션을 찾아보며 몰랐던 것을 배울 수 있었다.
참고한 글들은 아래와 같다.
@RequestBody
, @RequestBody MultiValueMap<String, String>
, @ModelAttribute
을 이용해서 위의 서로 다른 케이스들을 처리할 수 있다.
위와같이 form의 기본 contentType에 맞게 postman의 body 형식을 바꿔줘야한다.