분명 API URL도 맞췄고, 포트번호도 맞췄고, status도 201로 설정했는데 401 error가 뜬다.
401 error가 머지?
https://developer.mozilla.org/ko/docs/Web/HTTP/Status/401
-> 인증 자격 증명이 없어서 요청이 적용되지 않았다?
음.. API spec doc을 보니까 jwt를 사용해서 인증에 활용하는거 같다
내가 공부하고있는 탬플릿 코드를 보니까
위와 같이 jwtService class를 만들고, 그 안의 toToken을 사용해서 Entity body로 구성한다.
별도의 클래스를 만들거없이 위와 같은 코드를 적용해서 내 코드에 적용해봤으나 401은 그대로 뜬다.
디버그로 빌드해서 확인해보니 api 컨트롤러의 코드가 1줄도 실행이 안됨
-> 에러 내용을 다시 확인해보면 '유효한 인증 자격 증명이 없기 때문에 요청이 적용되지 않았음'
request가 제대로 전달이 안된걸 의미하는거 같다
결론을 말하면
내가 springboot 프로젝트를 생성할때 추가했던 security 모듈때문에 발생한 문제이다
탬플릿 코드에도 적용된 모듈이지만 왜 탬플릿 코드는 동작하는데 내 코드는 동작을 안할까?
src/main/java/io/spring/api/security/WebSecurityConfig.java
위와 같이 http 필터에 허용 옵션이 적용되서 그렇다...
위에 대해선 추후에 추가적으로 공부할 예정이다.
일단 security 모듈을 주석처리하고 빌드하니 정상적으로 api request가 전달되고 201이 확인되었다.
추가적으로 postman으로 전달했던 body에도 문제가 있었다
탬플릿 코드에는 필터를 통해서 값을 가져왔지만 아무것도 적용안한 내 코드는
{
"email": "jake@jake.jake",
"token": "jwt.token.here",
"username": "jake",
"bio": "I work at statefarm",
"image": null
}
로 전달되어야했다
https://github.com/gothinkster/realworld/tree/master/api
https://developer.mozilla.org/ko/docs/Web/HTTP/Status/401