Expansor de Plantillas URI (RFC 6570)
Las plantillas URI de RFC 6570 describen cómo construir una URL a partir de variables, y están en todas partes: la API de GitHub, las plantillas de ruta de OpenAPI/Swagger y los enlaces de hipermedia (HAL/JSON-LD) las usan. Una plantilla como `https://api.example.com{/version}/users{/id}{?fields*,page}` se expande contra un conjunto de variables a una URL real. Esta herramienta implementa los cuatro niveles de la especificación — expansión simple `{var}`, los operadores reservado (`{+var}`) y fragmento (`{#var}`), etiqueta (`.`), ruta (`/`), parámetro estilo-ruta (`;`), consulta de formulario (`?`) y continuación (`&`) — más los modificadores explode (`*`) y prefijo (`:n`) y el manejo correcto de valores vacíos e indefinidos. Proporciona las variables como un objeto JSON cuyos valores sean cadenas, números, listas o mapas clave/valor; la salida se codifica en porcentaje exactamente como exige el operador. Está verificada contra la suite completa de ejemplos de RFC 6570. Todo corre localmente — no se sube nada.
URL expandida
https://api.example.com/v2/users/42?fields=name&fields=email&page=1
Implementa los cuatro niveles de RFC 6570: operadores + : # . / ; ? & con modificadores explode (*) y prefijo (:n).
Cómo usar
- Escribe una plantilla URI con {llaves}, p. ej. {/path}{?query*}.
- Proporciona las variables como objeto JSON (cadenas, números, arrays u objetos).
- Lee la URL expandida y cópiala; ajusta plantilla o variables para ver el resultado en vivo.
Preguntas frecuentes
- ¿Qué significan los operadores?
- El primer carácter dentro de las llaves elige un operador: ninguno = valores simples unidos por comas; `+` mantiene sin escapar los caracteres reservados; `#` hace un fragmento; `.` una etiqueta; `/` segmentos de ruta; `;` parámetros estilo-ruta `;name=value`; `?` una consulta de formulario `?name=value`; `&` una continuación de consulta. Cada uno controla su separador y si se incluyen los nombres.
- ¿Qué hacen `*` y `:n`?
- `*` es el modificador explode: una lista o mapa se expande en componentes separados (p. ej. `{?list*}` → `?list=a&list=b` en vez de `?list=a,b`). `:n` es un modificador de prefijo que trunca un valor de cadena a los primeros n caracteres antes de codificar (p. ej. `{var:3}` de `value` → `val`).
- ¿Cómo paso listas y mapas?
- Usa JSON: una lista es un array (`"fields": ["name","email"]`) y un mapa asociativo es un objeto (`"keys": {"semi": ";"}`). Cadenas y números son escalares. Una variable ausente, null, lista vacía u objeto vacío se trata como indefinida y no aporta nada a la salida.
- ¿Es correcta la codificación?
- Sí — los valores se codifican en porcentaje según el conjunto permitido del operador. Los operadores simples y la mayoría codifican todo fuera del conjunto no reservado, mientras que `+` y `#` también dejan pasar los caracteres URL reservados (y los tripletes %XX existentes), igual que RFC 6570. La implementación pasa la tabla completa de ejemplos de la especificación.
Herramientas relacionadas
Expansor / Compresor de IPv6
Alterna cualquier dirección IPv6 entre su forma abreviada ::1 y la representación de 8 grupos totalmente expandida, también con DNS inverso y binario.
Referencia de URIs /.well-known/*
Catálogo buscable de well-known URIs registrados con IANA — `security.txt`, `openid-configuration`, `apple-app-site-association`, `acme-challenge` y 30+ más, con referencias RFC y casos de uso.
Codificador / Decodificador de URL
Codifica texto para URLs en porcentaje, o decodifica URLs a texto.
Analizador y decodificador de Data URI
Decodifica un data: URI para ver su tipo MIME, codificación, tamaño y contenido decodificado, en tu navegador.
Generador OAuth 2.0 PKCE
Genera code_verifier + code_challenge S256/plain para OAuth 2.0 PKCE (RFC 7636). También construye la URL de autorización y un curl listo para el intercambio de token.
Constructor de enlaces mailto:
Construye URLs mailto: con Para, Cc, Cco, asunto y cuerpo — codificadas con porcentaje según RFC 6068, listas para etiquetas <a>.