Expansor de Modelos URI (RFC 6570)
Os modelos URI do RFC 6570 descrevem como construir uma URL a partir de variáveis, e estão por toda parte: a API do GitHub, os modelos de caminho do OpenAPI/Swagger e os links de hipermídia (HAL/JSON-LD) os usam. Um modelo como `https://api.example.com{/version}/users{/id}{?fields*,page}` é expandido contra um conjunto de variáveis em uma URL real. Esta ferramenta implementa os quatro níveis da especificação — expansão simples `{var}`, os operadores reservado (`{+var}`) e fragmento (`{#var}`), rótulo (`.`), caminho (`/`), parâmetro estilo-caminho (`;`), consulta de formulário (`?`) e continuação (`&`) — além dos modificadores explode (`*`) e prefixo (`:n`) e o tratamento correto de valores vazios e indefinidos. Forneça as variáveis como um objeto JSON cujos valores sejam strings, números, listas ou mapas chave/valor; a saída é codificada em porcentagem exatamente como o operador exige. É verificada contra a suíte completa de exemplos do RFC 6570. Tudo roda localmente — nada é enviado.
URL expandida
https://api.example.com/v2/users/42?fields=name&fields=email&page=1
Implementa os quatro níveis do RFC 6570: operadores + : # . / ; ? & com modificadores explode (*) e prefixo (:n).
Como usar
- Digite um modelo URI com {chaves}, ex.: {/path}{?query*}.
- Forneça as variáveis como objeto JSON (strings, números, arrays ou objetos).
- Leia a URL expandida e copie-a; ajuste o modelo ou as variáveis para ver o resultado ao vivo.
Perguntas frequentes
- O que os operadores significam?
- O primeiro caractere dentro das chaves escolhe um operador: nenhum = valores simples unidos por vírgulas; `+` mantém caracteres reservados sem escapar; `#` faz um fragmento; `.` um rótulo; `/` segmentos de caminho; `;` parâmetros estilo-caminho `;name=value`; `?` uma consulta de formulário `?name=value`; `&` uma continuação de consulta. Cada um controla seu separador e se os nomes são incluídos.
- O que `*` e `:n` fazem?
- `*` é o modificador explode: uma lista ou mapa expande em componentes separados (ex.: `{?list*}` → `?list=a&list=b` em vez de `?list=a,b`). `:n` é um modificador de prefixo que trunca um valor de string aos primeiros n caracteres antes de codificar (ex.: `{var:3}` de `value` → `val`).
- Como passo listas e mapas?
- Use JSON: uma lista é um array (`"fields": ["name","email"]`) e um mapa associativo é um objeto (`"keys": {"semi": ";"}`). Strings e números são escalares. Uma variável ausente, null, lista vazia ou objeto vazio é tratada como indefinida e não contribui em nada para a saída.
- A codificação está correta?
- Sim — os valores são codificados em porcentagem conforme o conjunto permitido do operador. Os operadores simples e a maioria codificam tudo fora do conjunto não reservado, enquanto `+` e `#` também deixam passar os caracteres URL reservados (e os trios %XX existentes), igual ao RFC 6570. A implementação passa na tabela completa de exemplos da especificação.
Ferramentas relacionadas
Expansor / Compressor de IPv6
Alterna qualquer endereço IPv6 entre sua forma abreviada ::1 e a representação de 8 grupos totalmente expandida, também com DNS reverso e binário.
Referência de URIs /.well-known/*
Catálogo pesquisável de well-known URIs registrados com IANA — `security.txt`, `openid-configuration`, `apple-app-site-association`, `acme-challenge` e 30+ mais, com referências RFC e casos de uso.
Codificador / Decodificador de URL
Codifique texto para URLs em porcentagem, ou decodifique URLs em texto.
Analisador e decodificador de Data URI
Decodifique um data: URI para ver seu tipo MIME, codificação, tamanho e conteúdo decodificado, no seu navegador.
Gerador OAuth 2.0 PKCE
Gera code_verifier + code_challenge S256/plain para OAuth 2.0 PKCE (RFC 7636). Também monta a URL de autorização e um curl pronto para a troca de token.
Construtor de links mailto:
Construa URLs mailto: com Para, Cc, Cco, assunto e corpo — codificados em percentual conforme RFC 6068, prontos para tags <a>.