일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 우아한테크코스
- JPA
- 서블릿
- MSA
- yml
- 레벨2
- CircuitBreaker
- 우아한세미나
- 의존성
- JUnit5
- Level2
- 우테코
- 프로그래머스
- 코드리뷰
- HTTP
- 프리코스
- 스프링부트
- Spring Batch
- 미션
- AOP
- mock
- Docker
- Paging
- 자바
- 세션
- 트랜잭션
- 스프링 부트
- REDIS
- 백준
- AWS
- Today
- Total
늘
[인텔리제이] .http파일을 이용한 포스트맨 대체하기 본문
인텔리제이에서 지원하는 .http라는 파일을 만들면 포스트맨을 대체하여 매우 편리했던 경험이 있었다. 이러한 경험을 글로 정리해서 공유해보려고 한다.
장점
- 포스트맨을 사용했을 때는 매번 테스트 해볼때마다 복붙을 했었지만, .http라는 파일로 관리하여 저장할 수 있다.
- Code highlighting이 가능해서 더욱 직관적이다.
- 코드 자동 완성의 기능들이 있다.
단점
- 음..굳이 뽑자면 파일이기 때문에 관리를 해야 한다? 인 것 같다.
POST 요청
위 처럼 POST로 요청을 보낼 때, Content-Type을 명시해주고 한 칸 띄우고 json형식으로 입력해주면, 테스트용 디비에 아래처럼 잘 들어간 것을 확인할 수 있다.
그리고 로그인에 성공을 하면, accessToken도 잘 나오는 것을 확인할 수 있다.
또한 만약 로그인 시에 예외가 발생하면 아래 사진처럼 예외까지 보여준다.
GET 요청
GET요청은 단순히 url만 입력해주면 된다!
토큰의 유효성 검사
현재 장바구니 담기는 토큰을 헤더에 넣어주지 않아서 위와 같은 예외가 발생한다.
이때, 해당 .http파일에서 헤더에 추가해도 좋지만 여러 api요청에 같은 일을 반복해야 하므로 따로 추출해주겠다.
활용
AuthController.http
환경 변수로 위와 같이 설정을 해준다. response.body에서 accessToken필드의 값을 주입해준다.
authorizationToken에 "Bearer " + token의 형태로 저장해두겠다는 것이다.
이후, 다시 토큰이 필요한 장바구니 담기 요청의 헤더에 추가를 해준다.
이제 다시 로그인을 하고, 장바구니 담기 요청을 하면 정상 작동한다.
http-client.env.json
{
"local": {
"apiUrl": "http://localhost:8080/api/"
}
}
위 파일형식으로 환경 변수를 설정하면 아래처럼 더욱 간편하게 이용할 수 있다.
로그
IntelliJ의 .http 요청은 모두 로그로 남기고 있다.
Response Body가 너무 많을 경우엔 IntelliJ 화면에서 끊길 수가 있다고 합니다. 이럴 때 로그 파일로 확인하면 좋다.
로그 파일의 위치는 {프로젝트폴더}/.idea/httpRequests/ 아래에 모두 있다.
http-request-log.http에 자신이 적었던 모든 요청 형식들이 있을 것이다!
출처
'백앤드 개발일지 > 웹, 백앤드' 카테고리의 다른 글
[Tomcat]NIO Connector를 중심으로 (0) | 2023.03.18 |
---|---|
jwt토큰 디코딩하면 페이로드 값을 다 아는데 왜 서명을 하는걸까? (1) | 2022.09.01 |
패스워드 저장 시 단방향 해시 함수의 문제점과 해결법 (2) | 2022.06.04 |
디스패처 서블릿의 흐름 (0) | 2022.05.18 |
[디자인 패턴] MVC MVP MVVM 싱글톤 프록시 패턴들 (0) | 2021.12.28 |