Tips

[Postman Tips] JWT토큰 자동기입, Post Raw Body에 주석처리

HC-Kang 2023. 2. 5. 16:15

프로젝트 작업중, 포스트맨 사용 시 가장 먼저 세팅해주는 세팅들

1. JWT Bearer token 자동기입

 

위와 같이 환경변수에서 token을 생성해 준 뒤,

 

 

API의 Test 탭에서 아래 코드를 기입해주면, token이라는 환경변수에 자동으로 response에서 주어지는 token의 값을 기입해줍니다.

var data = JSON.parse(responseBody);
pm.environment.set("token", data.token);
console.log(data.token);
console.log('token update complete!');

 

이후 다른 API의 Authorization 탭의 세팅을 위와같이 맞춰주면, 자동으로 최신화된 token 환경변수가 매 요청에 헤더로 추가됩니다.

 

사실 Tests 탭은 원래 이런 용도는 아니고, API가 정상적으로 수신/발신되었는지 확인하는 API 테스트용이지만, 이런식으로 활용 하는것 자체가 굉장히 귀찮음을 크게 덜어주기에 혹시나 모르셨을 누군가를 위해 공유합니다.

 

 

 

2. 포스트맨 Body, Raw JSON 타입 활용 시 주석 사용하기

 

이 기능은 특히 프론트와의 협업에서, 잘만 사용하면 별다른 문서를 필요없게 해 줄수 있는 부분이라고 생각해서 굉장히 애용하고있습니다.

그런데 생각보다 주변에 모르고계신분이 많은 것 같아서 공유합니다.

 

 

일반적으로 위처럼 API를 발송하면 입력값이 모두 null 처리되어 에러가 나거나, 의도치 않은 값을 받게됩니다.

 

page 2를 요청하였으나, 모두 null 처리되어 page 1이 회신되었다.

 

이를 방지하기 위해, 이번에는 아래와 같이 Pre-request Script를 사용해줍니다.

 

 

코드는 아래와 같습니다.

if (pm?.request?.body.raw && pm?.request?.body?.options?.raw?.language === 'json') {
  const rawData = pm.request.body.toString();
  const strippedData = rawData.replace(
      /\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g,
      (m, g) => g ? "" : m
  );        
  pm.request.headers.add("application/json", "Content-Type")
  pm.request.body.update(JSON.stringify(JSON.parse(strippedData)));
}

 

 

위처럼 기입해주면, 똑같이 요청을 보냈을 때 아래와 같이 정상적인 요청값을 받을 수 있습니다.

주석이 포함되었음에도, page 2요청시에 정상적으로 page 2를 회신받았다.

 

그렇지만, 이걸 수십, 수백 개 되는 모든 API에 Pre-script로 넣으라는 뜻은 아닙니다.

아래처럼, 컬렉션 우측에 더보기를 눌러주시면, Edit이라는 버튼이 보입니다.

 

 

이를 눌러주면, 아래와 같이 컬렉션 전체에 적용할 수 있는 Pre-script와 test 코드를 작성 할 수 있습니다.

 

 

이렇게 되면, 해당 컬렉션에서 사용하는 모든 API에 대해서 JSON body에 주석을 처리할 수 있고, 사용자들에게 별도의 사용법 문서를 배포할 필요가 상당부분 줄어들게 됩니다.

 

이외에도 생각보다 포스트맨에 숨어있는 기능들이 많으니, 앞으로도 차차 작성해 보도록 하겠습니다.

 

다들 좋은 하루 보내세요~