[Insomnia] Response 변수로 저장 및 재사용 하는 방법

Postman 스크립트 내의 변수 사용법
https://learning.postman.com/docs/sending-requests/variables/#defining-variables-in-scripts

Postman에는 request시 특정 스크립트를 실행할 수 있고, 그 중 pm.environment를 사용해 environment에 변수를 설정하고 Header, Body 등에서 템플릿을 이용해 이 값을 가져올 수 있다.

예를 들면 로그인 API를 호출하면 자동으로 응답을 파싱해서 리프레시 토큰(refresh token)과 액세스 토큰(access token)을 환경 변수에 넣고, 각종 API 호출 시에는 환경 변수에 들어있는 액세스 토큰을 꺼내 쓸 수 있는 식이다.

나는 API 클라이언트 프로그램으로 오픈소스인 Insomnia(인섬니아, 불면증)를 쓰고 있는데, 환경변수 기능은 있지만, API 응답에서 특정 필드를 꺼내 환경변수로 저장하는 기능은 아직 없는 듯 하다.

[Question] Are there any way to `setEnvironmentVariable` like postman · Issue #217 · Kong/insomnia
Overview Insomnia Version: 5.0.20 Operating System: MacOS 10.11.4 (15E65) Summary: (A few sentences describing the issue. Try to include as much detail as possible.) I preRequest to get accessToken…

이슈를 찾아보던 중, 댓글에서 한 유저가 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. 변수 저장

Insomnia 헤더에 변수 저장 태그를 추가한 모습

Header 항목에 들어온 뒤, header 필드에서 ctrl + space 키를 누르면 여러가지 태그를 선택할 수 있는데 그 중 "Save Variable"을 선택한다.

액세스 토큰 태그 예시

그 다음, 추가한 태그를 클릭한 뒤 "Variable Name", "Response JSON Path"를 위 사진처럼 수정한다.

만약 응답 형태가 다르다면 적당히 맞춰서 변경한다.

2. 변수 사용

Bearer Token에 액세스 토큰을 변수에서 불러오는 태그 예시

사용 방법은 간단하다. 사용할 위치(Body, Auth, Header 등)에서 ctrl + space를 누른 뒤 "Variable" 항목을 눌러 태그를 추가한다.

액세스 토큰 변수를 사용하는 태그 설정 예시

변수 추가한 뒤 클릭해서 변수명을 입력한다. 위처럼 변수가 불러와진다면 완료.

insomnia Live Preview 탭 예시

Live Preview 패널에는 현재 사용 가능한 변수 목록이 출력된다.

설정이 끝났다면 이제 변수를 마음대로 저장하고 불러올 수 있다 :)