본문으로 건너뛰기
AZ Tools

URI 템플릿 확장기 (RFC 6570)

직접 정의한 변수로 RFC 6570 URI 템플릿 확장 — 네 레벨 모두 지원: 경로·쿼리·프래그먼트·라벨·경로형 연산자, explode·prefix 수정자, 브라우저에서.

확장된 URL

https://api.example.com/v2/users/42?fields=name&fields=email&page=1

RFC 6570 네 레벨 모두 구현: 연산자 + : # . / ; ? & 와 explode(*)·prefix(:n) 수정자.

사용법

  1. {중괄호}로 URI 템플릿 입력, 예: {/path}{?query*}.
  2. 변수를 JSON 객체(문자열·숫자·배열·객체)로 제공.
  3. 확장된 URL을 읽고 복사하세요. 템플릿·변수를 바꾸면 결과가 실시간 갱신됩니다.

자세한 설명

펼치기

RFC 6570 URI 템플릿은 변수로 URL을 만드는 방법을 기술하며, GitHub API, OpenAPI/Swagger 경로 템플릿, 하이퍼미디어(HAL/JSON-LD) 링크 등 도처에 쓰입니다. https://api.example.com{/version}/users{/id}{?fields*,page} 같은 템플릿은 변수 집합에 대해 실제 URL로 확장됩니다. 이 도구는 스펙의 네 레벨을 모두 구현합니다 — 단순 {var} 확장, 예약({+var})·프래그먼트({#var}) 연산자, 라벨(.)·경로(/)·경로형 파라미터(;)·폼 쿼리(?)·연속(&) 연산자 — 여기에 explode(*)·prefix(:n) 수정자와 빈값·미정의 값의 올바른 처리까지. 변수는 문자열·숫자·리스트·키/값 맵을 값으로 갖는 JSON 객체로 제공하면, 출력은 연산자가 요구하는 대로 정확히 퍼센트 인코딩됩니다. RFC 6570 전체 예제 모음으로 검증되었습니다. 모든 처리는 로컬에서 실행되며 업로드되지 않습니다.

자주 묻는 질문

연산자의 의미는?

중괄호 안 첫 글자가 연산자를 고릅니다: 없음 = 쉼표로 이은 단순 값; +는 예약 문자를 이스케이프하지 않음; #는 프래그먼트; .는 라벨; /는 경로 세그먼트; ;는 ;name=value 경로형 파라미터; ?는 폼 쿼리 ?name=value; &는 쿼리 연속. 각각 자체 구분자와 이름 포함 여부를 제어합니다.

*와 :n은 무엇을 하나요?

*는 explode 수정자로, 리스트나 맵을 개별 구성요소로 펼칩니다(예: {?list*} → ?list=a&list=b, ?list=a,b 대신). :n은 prefix 수정자로, 인코딩 전 문자열 값을 첫 n글자로 자릅니다(예: value의 {var:3} → val).

리스트와 맵은 어떻게 전달하나요?

JSON을 쓰세요: 리스트는 배열("fields": ["name","email"]), 연관 맵은 객체("keys": {"semi": ";"})입니다. 문자열·숫자는 스칼라입니다. 없거나 null이거나 빈 리스트·빈 객체인 변수는 미정의로 간주되어 출력에 아무것도 더하지 않습니다.

인코딩이 정확한가요?

네 — 값은 연산자의 허용 집합에 따라 퍼센트 인코딩됩니다. 단순 및 대부분 연산자는 비예약 집합 밖의 모든 문자를 인코딩하고, +와 #는 예약 URL 문자(및 기존 %XX 삼중쌍)를 그대로 통과시켜 RFC 6570에 부합합니다. 구현은 스펙의 전체 예제 표를 통과합니다.

관련 도구