Expansor de Modelos URI (RFC 6570)
Rede
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
Formatador de Endereços MAC
Reformate um endereço MAC entre notação com dois-pontos, hífen, ponto da Cisco e sem separador, em maiúsculas ou minúsculas — e veja seu tipo unicast/multicast e universal/local.
Conversor de Endereços IPv4
Converta um endereço IPv4 entre decimal com pontos, inteiro de 32 bits, hex e binário — e veja se é privado, público, loopback e mais.
Referência de Registros DNS
Cheat sheet pesquisável de tipos de registro DNS — A, AAAA, CNAME, MX, TXT, NS, SOA, PTR, SRV, CAA, DNSSEC, SVCB / HTTPS — com exemplos.
Calculadora de Subrede (IPv4 / CIDR)
Parseia CIDR IPv4 em endereço de rede, broadcast, netmask, wildcard, faixa de hosts e classe. Mostra desdobramento binário e status privado/público.
Parser de User Agent
Parseia string User-Agent em navegador, engine, OS, dispositivo e CPU. Detecta 20+ bots incluindo GPTBot, ClaudeBot, PerplexityBot.
Referência de Códigos de Status HTTP
Lista pesquisável de todos os códigos HTTP (1xx-5xx) com resumo, RFC, quando usar e armadilhas comuns.