🎯 0. 들어가기 전
흔히 API를 테스트하기 위해서, HTTP 요청을 보낼 때 Postman을 많이 이용했었다.
그래서 이전에 API를 테스트하기 위해서는 Postman을 작동시키고, API URI를 입력해서 요청을 보냈었다.
API는 IntelliJ를 이용해서 작성하고 테스트는 외부 Postman을 사용하기 때문에, 불편한 점이 많았다.
IntelliJ의 기능인 .http 파일을 사용해서 API를 테스트하게 되면 Postman 사용 시 보다 장점이 많다!
IntelliJ에서 .http 파일로 어떻게 API를 테스트 할 수 있는지 알아보자!
※ .http 기능은 IntelliJ Ultimate 버전에서 지원된다.
무료 버전인 Community 버전에서는 지원이 되지 않는 점을 알고 가자!
🎯 1. .http 파일 생성
intelliJ에서 파일을 생성하는 것과 같이 New 탭에 들어가면
그림과 같이 HTTP Request라는 파일 포맷이 존재한다.
파일을 생성하는 것처럼 http 파일을 만들 수 있다.
2. 기본 HTTP 요청 보내기
우선, 요청을 보내기 위해서는 첫 줄에 HTTP 스펙을 작성해주면 된다.
다음과 같이 작성할 수 있다.
### 자동차 경주 이력 조회 API
GET http://localhost:8080/plays
### 자동차 경주 플레이 API
POST http://localhost:8080/plays
※ ###으로 주석을 작성할 수 있다.
✅ 2-1. Request Header 설정
기본 요청을 첫 줄에 설정하고 헤더 설정이 필요 없는 경우에는 바로 실행하면 된다.
헤더 설정이 필요하다면, 다음과 같이 다음 줄에 Request Header를 설정해줄 수 있다.
자동차 경주 플레이 API에는 JSON이 요청되므로 Content-Type을 설정해줬다.
### 자동차 경주 플레이 API
POST http://localhost:8080/plays
Content-Type : application/json
✅ 2-2. Request Body 설정
Http Request Body는 한 줄을 건너 뛰고 아래에 작성하면 된다.
자동차 경주 플레이 API의 Request Body는 참가자 이름과 시도 횟수가 담긴 JSON이므로
다음과 같이 작성해주었다.
이렇게 요청을 완성할 수 있다!
🎯 3. HTTP 요청 보내기
http 파일 안에서 맨위의 전체 실행 버튼을 누르면 전체 API가 실행되고,
HTTP 요청 스펙 왼쪽의 실행 버튼을 누르면 해당 API만 실행된다.
✅ 3-1. HTTP 요청 전체 실행
전체 실행 결과는 IntelliJ의 테스트 실행처럼 각 API별로 결과가 출력된다.
각 API 응답의 헤더, Body가 출력되는 것을 볼 수 있다.
이때, HTTP 응답 Body은 ./idea/httpRequests에 별도로 저장된다.
이는 뒤에서 자세히 설명한다.
✅ 3-2. HTTP 요청 부분 실행
실행한 API의 결과가 출력된다.
API 응답의 헤더, Body가 출력되는 것을 볼 수 있다.
이때, 응답의 Body도 콘솔에 출력된다.
🎯 4. http 파일로 API 테스트 시 장점
지금까지 http 파일로 간단한 API 테스트를 하는 방법을 살펴보았다.
IntelliJ에서 http 파일로 API 테스트를 할 수 있는 건 알겠는데, 어떤 점이 좋은 걸까?
하나씩 알아보자.
✅ 4-1. 개발 환경에서 API 테스트
일반적으로 Postman을 사용했을 때는 Postman이 외부에 있기 때문에
Postman으로 테스트를 했다가, 다시 IntelliJ 코드 단으로 돌아왔다가 하는 반복 작업이 상당히 귀찮았다.
http 파일은 IntelliJ 코드 단 내부에 생성되기 때문에, 간편하게 작업을 진행할 수 있다.
✅ 4-2. 코드 자동 완성
기본적으로 IntelliJ가 API 스펙, 메서드 유형, 헤더 필드 및 엔드포인트를 자동완성해주므로 편리하다.
✅ 4-3. HTTP Request의 가독성이 좋다!
앞의 사용법 예시에서 사용했던 HTTP Request를 Postman과 비교해보자.
IntelliJ의 http 파일에서 HTTP Request는 전체 구조가 한눈에 들어온다.
반면, Postman에서는 Request Header와 Body 탭이 나눠져 있어서,
전체 구조를 보려면 탭을 왔다갔다 해야한다.
✅ 4-4. 기본 라이브 템플릿 제공 & 커스텀 라이브 템플릿 생성 가능
http 파일의 맨 왼쪽 위의 + 버튼(Add Request)을 누르면,
다음과 같이 기본으로 HTTP Request 템플릿이 제공되어 GET, POST 등의 요청을 편리하게 사용할 수 있다.
해당 요청들은 모두 축약어(GET Request -> gtr, ...)로 간편하게 사용할 수도 있다.
또한, 자주 사용하는 커스텀 Live Template을 지정할 수 있다!
✅ 4-5. Controller 코드에서 http 파일 & Http Request 자동 생성
Controller의 API 코드 단에서 왼쪽 파란색 버튼이 있다.
해당 버튼을 누르면 http 파일을 자동으로 생성해주고,
해당 API의 Http Request까지 기본 설정을 자동으로 작성해준다.
✅ 4-6. 파일 관리 가능
앞선 장점들은 모두 편의성 부분이었지만,
파일 관리가 가능하다는 장점은 중요한 장점 같다.
모든 요청이 .http 파일로 관리되므로 Git을 사용하여 코드 베이스로 관리할 수 있다.
코드 베이스에서 파일로 관리되므로,
처음 코드를 접한 개발자가 API를 실행시켜보면서 프로젝트 흐름을 이해할 수도 있을 것이고,
API 수정 내역도 History를 보면 알 수 있는 등 여러 장점이 있다!
🎯 5. 마치며
.http 파일의 더 많은 자세한 기능들은 아래의 공식문서 링크를 참조하여 사용하면 좋을 것 같다!
https://www.jetbrains.com/help/idea/http-client-in-product-code-editor.html
Reference
https://jojoldu.tistory.com/266
https://sihyung92.oopy.io/etc/intellij/2