본문으로 건너뛰기

Environment와 Vars

Free Rider는 바뀌는 실행 환경과 실행 중 상태를 분리합니다.

Environment와 Vars 차이

종류용도Script API
Environmentdev / staging / prod처럼 실행 환경에 따라 바뀌는 읽기 전용 값ctx.env.get("KEY")
Vars컬렉션·폴더·요청 범위 값과 실행 중 캡처한 값ctx.vars.get/set/delete("KEY")

요청에서는 다음처럼 사용합니다.

text
{{BASE_URL}}/v1/users/{{userId}}

변수 이름은 대소문자를 구분합니다.

변수 우선순위

낮은 우선순위부터 다음 순서로 합쳐집니다.

  1. 컬렉션 / 폴더 기본값
  2. 선택한 Environment
  3. 요청별 Vars
  4. 실행 중 Vars

실행 중 Vars는 같은 컬렉션과 Environment에서 다음 요청으로 이어지며 앱 종료 또는 런타임 값 초기화 시 사라집니다.

.env 파일 연결

환경 화면에서 여러 Environment를 만들거나 .env 파일을 연결할 수 있습니다.

연결한 파일은 원문을 편집한 뒤 편집 내용 적용 또는 파일 저장을 사용합니다. 다시 읽기는 디스크의 최신 내용을 불러옵니다.

파일이 Free Rider 밖에서 바뀌었다면 실수로 덮어쓰지 않도록 저장을 차단합니다. 먼저 다시 읽어 변경 내용을 확인하세요.

컬렉션 Interceptors

컬렉션 Overview의 Interceptors에서 활성화합니다. 설정은 해당 컬렉션에만 적용되며 컬렉션 Runner를 시작할 때 현재 Interceptor 설정을 고정합니다.

Before Request 예시

js
const token = ctx.vars.get('accessToken')

if (token) {
  req.headers.set('Authorization', 'Bearer ' + token)
}

req.headers.set('X-Environment', ctx.env.get('ENV'))

Before Request에서 바꾼 req.method, req.url, req.body, req.headers는 실제 전송 요청에 반영됩니다.

After Response 예시

js
if (req.url.includes('/login') && res.status === 200) {
  ctx.vars.set('accessToken', res.json().accessToken)
}

ctx.log('HTTP', res.status)

Environment는 읽기 전용입니다. Vars만 setdelete로 변경할 수 있습니다.

자세한 메서드와 실행 제한은 Script API Reference를 참고하세요.

All free. Open source. AGPL-3.0-only.