Echolot
요청

동적 값

타임스탬프, UUID, 해시, 인코딩, 파일, 다른 요청과 그 응답의 값처럼 보낼 때 계산되는 값으로 요청을 채웁니다.

동적 값은 요청을 보낼 때마다 Echolot이 계산하는 토큰입니다. 현재 시간, 새 UUID, 본문에 대한 서명, 다른 요청의 최신 응답에 있는 값 등이 해당합니다. 변수처럼 쓰되 앞에 $를 붙입니다. {{$uuid}}, {{$sha256('{{password}}')}}처럼 씁니다. 동적 값은 변수를 쓸 수 있는 모든 곳에서 동작합니다. URL, 매개변수, 헤더, 본문, 양식 필드, 인증 필드가 그렇습니다.

이 페이지는 동적 값을 추가하고 편집하는 방법을 설명합니다. 모든 동적 값과 그 인수는 동적 값 레퍼런스에 정리되어 있습니다.

목록에서 추가하기

  1. 변수를 받는 필드에 {{를 입력합니다. 범위 안의 변수가 먼저, 이어서 카테고리별 동적 값이 있는 목록이 열립니다.
  2. 계속 입력해서 범위를 좁힙니다. uuid, time, hmac 같은 식입니다. 각 항목에는 무엇을 주는지 설명이 있습니다.
  3. ↑와 ↓로 이동하고 ↩ 또는 ⇥를 눌러 삽입합니다. Esc는 목록을 닫습니다.

인수를 받는 값은 삽입하자마자 편집기가 열리므로 인수를 직접 입력하지 않고 양식에서 채울 수 있습니다. {{를 입력하지 않고 목록을 열려면 필드를 오른쪽 클릭하고 변수 또는 값 삽입…을 선택합니다.

필드에서 동적 값은 읽기 쉬운 라벨이 붙은 알약 모양으로 표시됩니다. 값의 제목(HMAC-SHA256)이거나, 응답 값이면 요청과 읽는 대상(Sign in › $.access_token)입니다. 그 아래의 텍스트는 쓴 그대로 유지됩니다.

토큰 편집

알약을 두 번 클릭하거나 오른쪽 클릭하고 토큰 편집…을 선택합니다. 토큰 편집기가 열립니다.

  • 맨 위의 버튼은 토큰이 무엇인지(변수 또는 동적 값) 알려 주며, 눌러서 바꿀 수 있습니다.
  • 필드는 값의 인수입니다. 요청 인수는 작업 공간의 요청을 폴더별로 보여 주는 메뉴이고, 쿼리 인수(JSONPath, XPath, 헤더 이름)에는 최신 응답에 있는 항목을 나열하는 버튼이 있어 경로를 입력하지 않고 값을 고를 수 있습니다.
  • 값은 현재 환경에서 토큰이 주는 값을 보여 주며, 값을 확인할 수 없으면 현재 환경에서 값을 확인할 수 없음과 그 이유를 보여 줍니다.
  • 변수에서는 다른 변수 사용으로 다른 변수로 바꾸고, 대신 응답 값 사용으로 응답 값으로 바꿀 수 있습니다.
  • 제거는 토큰을 삭제하고 완료는 변경 사항을 유지합니다.

빠른 확인

알약에 포인터를 올리면 열지 않고도 그 값이 무엇을 주는지 볼 수 있습니다. 값(비밀 값은 가려지고 비밀 키로 표시됨), 출처, 쓰인 방식이 나옵니다. 동적 값은 빠른 확인에 값이 계산되는 시점도 표시됩니다. 시간과 무작위 값은 보낼 때마다 새로 만들어집니다. 위는 예시입니다. 버튼은 편집…, 값 복사, 모든 변수…이며, 모든 변수…는 변수 패널을 엽니다.

직접 쓰기

{{$name}}                       no arguments
{{$name('text', 42)}}           text in single or double quotes, numbers as they are
{{$base64(user)}}               a bare name is a variable
{{$base64('{{user}}:{{pass}}')}} variables inside text
{{$sha256("{{$requestBody('')}}")}} a dynamic value inside another one

따옴표로 묶은 인수 안의 토큰은 자신의 인수에 다른 종류의 따옴표를 써야 합니다. 마지막 줄처럼 인수가 작은따옴표로 묶인 토큰은 큰따옴표로 감쌉니다.

사용할 수 있는 값

카테고리예제공하는 값
응답{{$response('auth/sign-in', '$.access_token')}}, {{$responseHeader('orders/create-order', 'Location')}}, {{$responseStatus('auth/sign-in')}}다른 요청의 최신 응답에 있는 값.
요청{{$requestHeader('', 'Content-Type')}}, {{$requestURL('auth/sign-in')}}, {{$requestJSONPath('', '$.lines[0].sku')}}이 요청(첫 번째 인수가 비어 있음) 또는 다른 요청의, 보내질 때의 일부분.
인코딩{{$base64('heidi:alpenglow')}}, {{$urlEncode('a b&c')}}, {{$jsonEscape('say "hi"')}}, {{$basicAuth('heidi', '{{password}}')}}, {{$jwt('{"sub": "heidi"}', '{{jwtSecret}}')}}, {{$newline}}인코딩 또는 디코딩된 텍스트, 이스케이프, Basic 인증 값, 서명된 JWT.
해시 및 서명{{$sha256("{{$requestBody('')}}")}}, {{$hmacSha256('{{key}}', 'message', 'base64')}}, {{$md5('text')}}해시와 HMAC. base64나 base64url을 지정하지 않으면 16진수입니다.
시간{{$timestamp}}, {{$timestampMs}}, {{$isoTimestamp}}, {{$httpDate}}, {{$date('yyyy-MM-dd', -86400, 'Europe/Zurich')}}보내는 시각을 Unix 초 또는 밀리초, ISO 8601, HTTP 날짜, 직접 정한 형식으로. 초 단위 오프셋과 시간대를 적용할 수 있습니다.
무작위{{$uuid}}, {{$randomInt(1, 6)}}, {{$randomString(16)}}, {{$randomHex(8)}}보낼 때마다 새로 만들어지는 무작위 값. $guid와 $randomUUID는 $uuid의 다른 이름입니다.
가짜 데이터{{$randomFullName}}, {{$randomEmail}}, {{$randomCity}}, {{$randomPrice}}, {{$randomLoremSentence}}, {{$randomDatePast}}지어낸 이름, 주소, 회사, 가격, 날짜, lorem ipsum 등이며 보낼 때마다 새로 만들어집니다. 이름은 Postman의 이름을 따릅니다. 목록에서는 하위 메뉴로 묶여 있습니다. 가짜 데이터를 참고하십시오.
텍스트{{$lowercase('{{name}}')}}, {{$uppercase('chf')}}, {{$trim('{{code}}')}}변환된 텍스트.
파일 및 시스템{{$file('data/order.json')}}, {{$env('HOME')}}파일의 내용(작업 공간 기준 상대 경로 또는 절대 경로), 또는 Echolot 프로세스의 환경 변수.

$env는 에이전트에서 사용할 수 없습니다. AI 에이전트가 요청을 보낼 때 Mac의 환경 변수는 포함되지 않습니다.

Alpenglow 예제에서는 Orders › Create order가 하나를 사용합니다. Idempotency-Key 헤더가 {{$uuid}}이므로 주문마다 새 값이 됩니다.

다른 요청의 응답에서 가져오는 값

응답 값은 저장된 다른 요청의 최신 응답을 읽습니다. 첫 번째 인수는 작업 공간에서 그 요청의 경로, 즉 파일에서와 같은 폴더와 이름입니다. Auth › Sign in은 auth/sign-in입니다.

값읽는 대상
$response(request, query)쿼리의 형식에 따라 무엇이든: $.token(JSONPath), /feed/entry[1]/id(XPath), header:Location, cookie:session, regex:token=(\w+), jq:.data.token, keypath:data.items.0.id.
$responseJSONPath, $responseKeyPath, $responseJq, $responseXPath, $responseRegex해당 종류의 쿼리로 읽는 본문. 정규 표현식은 그룹이 있으면 첫 번째 그룹을 줍니다.
$responseHeader, $responseCookie헤더, 또는 응답이 설정한 쿠키.
$responseStatus, $responseBody, $responseBodyLength상태 코드, 텍스트로 읽은 본문, 바이트 단위 크기.

값이 읽는 요청에 아직 응답이 없으면 Echolot이 그 요청을 먼저 보냅니다. 보내기 전에 URL 막대 아래 줄에 “Sign in”을(를) 먼저 보냄이라고 표시됩니다. 선택 사항인 마지막 인수가 이것이 일어나는 시점을 정하며, 토큰 편집기에서는 먼저 보내기입니다.

인수편집기에서동작
(없음) 또는 'if-missing'아직 응답이 없을 때다른 요청에 응답이 없을 때만 그 요청을 보냅니다.
'fresh'매번이 요청을 보낼 때마다 먼저 보냅니다(실행에서는 실행당 한 번).
'latest'안 함: 최신 응답 사용보내지 않고 최신 응답을 사용합니다.
{{$response('auth/sign-in', '$.access_token', 'fresh')}}

서로를 순환하며 읽는 요청은 해당 요청 이름과 함께 거부됩니다.

한 요청을 가리키는 대신 모든 요청이 읽는 변수에 응답의 값을 보관하려면 응답 캡처를 사용하십시오.

이 요청에서 가져오는 값

요청 값은 변수와 인증이 채워진, 보내질 때의 요청을 읽습니다. 지금 보내는 요청이면 첫 번째 인수를 비워 둡니다: {{$requestHeader('', 'X-Request-Id')}}. Echolot은 요청한 부분만 계산하므로 헤더로 본문에 서명할 수 있습니다.

X-Signature: {{$hmacSha256('{{signingKey}}', "{{$requestBody('')}}")}}

jq

jq 필터는 $responseJq, $requestJq, $response(…, 'jq:…')에서 동작하며 따로 설치할 것이 없습니다. 결과가 여러 개인 필터는 한 줄에 하나씩 줍니다.

{{$responseJq('catalog/list-products', '.items[0].sku')}}
{{$responseJq('catalog/list-products', '[.items[].price.amount] | add')}}

값이 확인되지 않을 때

계산할 수 없는 토큰(없는 변수, 보낼 수 없는 응답 없는 요청, 아무것도 찾지 못하는 JSONPath)은 쓴 그대로 전송되며 URL 막대 아래 줄에 문제 1개가 표시됩니다. 클릭하면 어느 것인지 볼 수 있습니다. 토큰 편집기와 빠른 확인에도 같은 내용이 나옵니다.

이 페이지에서