[Postman Tips] JWT토큰 자동기입, Post Raw Body에 주석처리
프로젝트 작업중, 포스트맨 사용 시 가장 먼저 세팅해주는 세팅들
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 처리되어 에러가 나거나, 의도치 않은 값을 받게됩니다.
이를 방지하기 위해, 이번에는 아래와 같이 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)));
}
위처럼 기입해주면, 똑같이 요청을 보냈을 때 아래와 같이 정상적인 요청값을 받을 수 있습니다.
그렇지만, 이걸 수십, 수백 개 되는 모든 API에 Pre-script로 넣으라는 뜻은 아닙니다.
아래처럼, 컬렉션 우측에 더보기를 눌러주시면, Edit이라는 버튼이 보입니다.
이를 눌러주면, 아래와 같이 컬렉션 전체에 적용할 수 있는 Pre-script와 test 코드를 작성 할 수 있습니다.
이렇게 되면, 해당 컬렉션에서 사용하는 모든 API에 대해서 JSON body에 주석을 처리할 수 있고, 사용자들에게 별도의 사용법 문서를 배포할 필요가 상당부분 줄어들게 됩니다.
이외에도 생각보다 포스트맨에 숨어있는 기능들이 많으니, 앞으로도 차차 작성해 보도록 하겠습니다.
다들 좋은 하루 보내세요~