1001Ferramentas
🧩Dev

Construtor de URI Template (RFC 6570)

Cole uma URI Template e os valores das variáveis e gere a URI expandida. Suporta level 1–4 (path, query, fragment).

URI expandida

URI Template da RFC 6570: os oito operadores

Um URI Template descreve uma família de endereços com marcadores entre chaves, e a RFC 6570 define exatamente como cada marcador se expande. É o que a API do GitHub devolve nos campos de link, e o que permite ao cliente montar a URL certa sem concatenar string. A página expande o modelo com os valores que você fornece, aplicando as regras de codificação de cada operador.

A diferença que mais importa está entre o marcador simples e o operador de mais. O simples codifica os caracteres reservados, então uma barra dentro do valor vira sua forma percent-encoded e não separa caminho. O de mais preserva os reservados, o que serve para variável que contém caminho inteiro. Confundir os dois é a origem de URL quebrada ou, pior, de path traversal quando o valor vem do usuário.

Os outros seis operadores acrescentam pontuação automática: ponto para rótulo, barra para segmento de caminho, ponto e vírgula para parâmetro de caminho, interrogação para começar a query, e-comercial para continuá-la, e cerquilha para fragmento. Cada um sabe qual separador usar entre valores e se deve escrever o nome da variável — e é justamente isso que dispensa montar a URL na mão.

Perguntas frequentes

O que fazem os modificadores?
São dois. O de dois-pontos seguido de número recorta um prefixo do valor, útil para montar caminho a partir dos primeiros caracteres de um hash. O asterisco explode lista ou mapa em vários elementos em vez de juntar por vírgula, e o resultado depende do operador — com interrogação, por exemplo, cada item ganha o próprio par nome e valor.
O que acontece com variável sem valor?
A norma distingue indefinida de vazia. Variável indefinida simplesmente desaparece da expansão, sem deixar separador solto. Variável definida como string vazia aparece: nos operadores nomeados ela vira o nome seguido de igual, e nos outros contribui com um elemento vazio.
Dá para fazer o caminho inverso?
Não de forma confiável, e a norma diz isso. A expansão perde informação — não há como saber, olhando a URL final, quantos valores foram explodidos ou onde terminava uma variável que continha o separador. Quem precisa extrair valores de URL usa roteamento com padrão, que é outro problema.

Ferramentas Relacionadas