기본 콘텐츠로 건너뛰기

2022 08 26 회사 워크샵

인텔리 J(intelliJ) 초보자를 위한 팁 #12 - http 소개 및 cURL 컨버팅 하는 방법

안녕하세요~

인텔리 j를 써가면서 제가 편하게 쓰는 팁들을 공유하고 싶어서 글을 올립니다... 하여!!

'몰라도 상관없지만 알면 좋은' 팁입니다.

인텔리 j를 시작하시는 분들에게 괜찮은 팁이 되었으면 좋겠습니다.

제가 인텔리 J 라고는 적었지만 인텔리J가 말고 웹스톰 파이참 등.. 젯 브레인에서 제공되는 ide 는 거의 공통으로 사용할 수 있는 팁들입니다~

이번엔  RESTful API 테스트하는 방법을 알아보겠습니다.

백앤드를 하시던 프론트앤드를 하시던 RESTful api 테스트를 하시는 일이 생깁니다.

개발자 분들이 보통 많이 쓰는게 포스트맨인데요.

인텔리 j 에서도 RESTful api 를 테스트 할 수 있습니다.

- http 파일 생성


프로젝트 View[Alt+1] 에서 Alt+Insert 누르시면 HTTP Request 가 나옵니다.
파일을 만들어보면..[전 test.http 로 생성했습니다.] 음.. 아무것도 없습니다... 덩그러니...


우선 오른쪽 상단에 보시면 Add request, Add environment file ,Convert..., Examples 이 나옵니다. 
여기서 Examples 를 눌러보면


Get, Post 등 예시가 나옵니다. 
Get Requests 눌러보면..


대충 어떻게 쓰는건지 예시가 나옵니다.. 
오른쪽 상단에 빨간박스를 보시면 reader Mode 라고 나오고 파일 수정이 안됩니다. 
파일 위치를 보면 아까 위에는 test.http 파일인데 지금은 get-requests.http 파일로 파일명이 다릅니다. 

이거는 예제로 보여준것 뿐이고 test.http 에서 만들어야 합니다. [복사 붙여넣기 하셔도 됩니다.]

그럼 다시 test.http 파일로 넘어와서..[Ctrl+e 를 누르면 최근 열었던 파일을 확인 할 수 있습니다. 여기서 test.http 파일을 금방 찾으실수 있을것입니다.]


'GET http://localhost:8080/' 작성하고 Shift+space bar 를 치시면 지금 프로젝트에서 사용할수 있는 RESTful api url 이 목록으로 나옵니다. [이거는 백앤드 spring 만 지원되는거 같은데.. 정확히 확인은 못했습니다...]

[위 api 주소는 제 개인 작업 주소입니다.]

GET 을 마저 써주고 Contnet-Type: application/json 을 마저 적어줍니다. 
[타이핑 하시다가 보면 힌트가 나올껍니다.. 그냥 힌트를 사용해주시면 됩니다.. ]

다 작성하시고 실행[Shift+F10 또는 GET 옆에 빨간박스 안에 버튼]을 해보시면..


Service View[Alt+8] 에 결과가 나오는것을 확인할수 있습니다.
이번엔 POST를 해보겠습니다. 


POST Examples 입니다. 
그럼 아까 파일로 와서.. 이번엔 다른 방법으로 생성해보겠습니다.


Add request 를 눌러보시면..


이렇게 기본 템플릿을 제공해줍니다. 여기서.. 전 POST Text Body 를 선택해보겠습니다.


POST http://localhost:80/api/item 이라는 템플릿이 생성되었습니다. 
그리고 빨간박스안에 ### 이 같이 생겼습니다.

'###' 는 RESTFul api 의 구분을 짓는겁니다. ### 밑으론 다른 테스트 API를 만든다고 보시며 됩니다.

그럼 템플릿을 토대로..


생성 했고..

역시나 실행[Shfit+F10]을 해보시면..


정상을 200 이 떨어지는 것을 확인할 수 있습니다. [결과는 제가 샘플로 만들었습니다.. 신경쓰지 마세요......]
이외에도 parameter body ,file 등도 하실 수 있습니다.
혹시나  file 넣는것도 필요하면 덧글로 남겨주세요~

-Environment file 

테스트를 하다보면 공통적인 값을 넣어주거나.. 개발api 와 운영 api 경로를 구분하거나.. 해야 할일이 생깁니다.[저만 그럴수도...]

그때 environment 를 사용하시면 조금 더 편하게 이용할수 있습니다.


오른쪽 상단에 Add environment file 을 눌러보시면 Regular , Private 를 선택하실수 있습니다.
Regular 는 보통 파일을 만드는것 같고...
private을 gitignore 를 넣은것처럼 커밋에 제외가 됩니다.[Git 에 파일을 추가 유무를 물어보질 않습니다. Regular 를 만드셨다면 Git에 파일 추가 여부를 물어봅니다.]
Regular 를 만들면..


http-client.env.json 파일이 추가 됩니다.
안에 내용은 json 파일이니 json 형태처럼 등록을 하시면 됩니다.
저는 test 안에 host 를 넣어서 url 을 등록했습니다.

다시 test.http 로 와서..


url 을 {{host}}로 변경했습니다. 
이젠 실행[Shift+F10]을 하면되는데 하기전에.. 


녹색 화살표를 눌러보시면.. environment 를 선택을 할 수 있습니다.
저희는 test 로 만들었으니깐...
1번쨰꺼를 선택하시면


{{host}} 가 test안에 host 를 불러와서 실행된것을 확인할수 있습니다.
이후 부터는 단축키로 실행을 해도 알아서 test environment 를 참조하여 실행이 됩니다.
[위 과정을 안 하셨다면.. 에러가 발생합니다...]

고정으로 사용되는것 혹은 여러 api 에서 공통적으로 사용되는 파라미터를 빼서 사용하면 한결 편하게 테스트를 하실수 있습니다.

- Convert...

마지막으로 Convert 입니다.
몇몇 사이트에서 api 를 재공하면서 curl 로 안내해주는 경우가 있습니다.
curl -i -X GET \
 "https://graph.facebook.com/v10.0/{album-id}"
이런식으로..[페이스북꺼를 뺏어왔습니다. ㅎㅎ]
그럼 이걸 인텔리 J에서 테스트 할수 있게 Convert를 해줍니다.


오른쪽상단에 Convert... 를 선택하시면 팝업창이 나옵니다. 
여기서 Convert cURL to HTTP Request 를 클릭하시면..


팝업이 나옵니다. 팝업에다가 아까 페이스북에서 복사해온것을 넣고 {album-id} 를 수정해주시고 Convert 를 해보시면..


이렇게 자동으로 바로 테스트를 할 수 있게 변경이 됩니다.
예제를 하다보니 쉬운거를 하게 되었는데 다른것들도 이렇게 변경이 되니 cURL을 하실수있습니다.
또 우리가 테스트로 만든것도 cURL로 만들수 있습니다.


테스트로 만드신 소스를 선택하시면 노랑전구가 나오는데 노랑전구를 클릭하시면
Convert to cURL and copy to clipboard 를 선택하시면

curl -X POST --location "http://localhost:8080/api/sample/post/test" \
    -H "Content-Type: application/json" \
    -d "{
        \"carModel\": \"현대\",
        \"carName\": \"소나타\"
        }"

cURL 생성할수 있습니다!

휴.. 적다 보니 엄청 길어졌네요!

오늘은 여기까지입니다.

긴글 읽어주셔서 감사드리고~ 여러분들에게 도움이 되었으면 좋겠습니다!

다음엔 또 다른팁을 가지고 돌아오겠습니다!

댓글