[Insomnia] Response 변수로 저장 및 재사용 하는 방법
Postman에는 request시 특정 스크립트를 실행할 수 있고, 그 중 pm.environment
를 사용해 environment에 변수를 설정하고 Header, Body 등에서 템플릿을 이용해 이 값을 가져올 수 있다.
예를 들면 로그인 API를 호출하면 자동으로 응답을 파싱해서 리프레시 토큰(refresh token)과 액세스 토큰(access token)을 환경 변수에 넣고, 각종 API 호출 시에는 환경 변수에 들어있는 액세스 토큰을 꺼내 쓸 수 있는 식이다.
나는 API 클라이언트 프로그램으로 오픈소스인 Insomnia(인섬니아, 불면증)를 쓰고 있는데, 환경변수 기능은 있지만, API 응답에서 특정 필드를 꺼내 환경변수로 저장하는 기능은 아직 없는 듯 하다.
이슈를 찾아보던 중, 댓글에서 한 유저가 Save Variables
라는 플러그인을 만들었다고 한 것을 봤는데, 사용해보니 쓸만해서 공유해본다.
insomnia-plugin-save-variables 설치 및 사용법
위 링크를 이용해 플러그인을 설치한다. 이 글은 플러그인 3.3.0 버전 기준이다.
(insomnia 플러그인은 experimental 기능임)
{
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3RAY29kZWZhY3RvcnkuYWkiLCJzdWIiOiJmNTViMzJkMi00ZDY4LTRjMWUtYTNjYS1kYTlkN2QwZDkyZTUiLCJ0eXBlIjoicmVmcmVzaCIsImlhdCI6MTY3Njc0MDA2NiwiZXhwIjoxNjc2ODI2NDY2fQ.kr9giFLC5AQdM0Hzv0ZzbJ9GwAilCROjDBQgDVM4Si0",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3RAY29kZWZhY3RvcnkuYWkiLCJzdWIiOiJmNTViMzJkMi00ZDY4LTRjMWUtYTNjYS1kYTlkN2QwZDkyZTUiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNjc2NzQwMDY2LCJleHAiOjE2NzY3NDAzNjZ9.wcMBauEX_CGROqqWQ-C5WeE_rTRs6jCf2Mare1y_eDQ"
}
로그인 시 위와 같은 형태로 response가 내려오고, 인증이 필요한 API 호출시 Authorization: Bearer $accessToken
형태 헤더를 추가해줘야 한다고 가정했을 때 아래처럼 설정하면 된다
1. 변수 저장
Header 항목에 들어온 뒤, header 필드에서 ctrl + space 키를 누르면 여러가지 태그를 선택할 수 있는데 그 중 "Save Variable"을 선택한다.
그 다음, 추가한 태그를 클릭한 뒤 "Variable Name", "Response JSON Path"를 위 사진처럼 수정한다.
만약 응답 형태가 다르다면 적당히 맞춰서 변경한다.
2. 변수 사용
사용 방법은 간단하다. 사용할 위치(Body, Auth, Header 등)에서 ctrl + space를 누른 뒤 "Variable" 항목을 눌러 태그를 추가한다.
변수 추가한 뒤 클릭해서 변수명을 입력한다. 위처럼 변수가 불러와진다면 완료.
Live Preview 패널에는 현재 사용 가능한 변수 목록이 출력된다.
설정이 끝났다면 이제 변수를 마음대로 저장하고 불러올 수 있다 :)