Extraiga parámetros de ruta OpenAPI en orden
Las plantillas de ruta OpenAPI encierran los segmentos variables entre llaves, pero los generadores de documentación, constructores de solicitudes, datos de prueba y generadores de código suelen necesitar esos nombres en una lista ordenada.
Ejecutar — gratis
Esta capacidad recorre una plantilla de izquierda a derecha, devuelve cada parámetro en su posición original y rechaza llaves de apertura o cierre sin pareja. Es determinista, no usa la red y siempre produce el mismo resultado para una entrada idéntica, por lo que resulta apropiada para compilaciones, validaciones, editores y flujos de API automatizados.
Convierta una plantilla de ruta en una lista ordenada
Una operación OpenAPI puede usar una ruta como <code>/users/{id}/posts/{postId}</code>, mientras que las herramientas asociadas necesitan los nombres <code>id</code> y <code>postId</code> como valores separados. El extractor lee la plantilla desde el primer carácter hasta el último y devuelve los parámetros en ese mismo orden. El orden es importante porque un constructor de solicitudes, un servidor simulado, un ejemplo de documentación o un generador de pruebas puede asociar valores con las posiciones donde aparecen en la URL. El análisis no ordena, elimina duplicados, cambia nombres ni normaliza el texto capturado. Si un nombre aparece dos veces, también aparece dos veces en el resultado, reproduciendo fielmente la plantilla recibida. Los segmentos estáticos se ignoran, por lo que las barras, versiones, signos y el texto común fuera de las llaves no agregan ruido. Una plantilla sin segmentos delimitados por llaves es válida y devuelve una lista vacía. Este comportamiento acotado ofrece resultados previsibles que se integran sin transformaciones ocultas en procesos OpenAPI más amplios.
Detecte llaves incorrectas antes del procesamiento posterior
Una llave ausente puede dañar silenciosamente el trabajo posterior. Por ejemplo, un generador podría interpretar el resto de una ruta como un solo parámetro, o un renderizador de documentación podría mostrar una plantilla que jamás coincidirá con una solicitud. Por eso, el extractor rechaza una llave de cierre sin apertura anterior, una llave de apertura que nunca se cierra y una segunda apertura antes de cerrar el parámetro actual. El error indica la posición de la llave, lo que facilita diagnosticar plantillas incorrectas en registros de compilación o herramientas interactivas. La validación sucede durante el mismo recorrido lineal que realiza la extracción, así que no existe un estado de análisis separado que pueda contradecir la lista devuelta. Las plantillas equilibradas se procesan normalmente, incluso si repiten nombres o no contienen parámetros. La capacidad se concentra exclusivamente en la estructura de las llaves; no valida un documento OpenAPI completo, no confirma que existan las declaraciones de parámetros ni decide si los nombres capturados respetan las convenciones de su equipo. Esas comprobaciones corresponden a validadores de esquemas o especificaciones.
Use el resultado en generadores, pruebas y herramientas de API
La lista resultante está pensada como un valor intermedio pequeño y fácil de combinar. Un generador de código puede compararla con los parámetros de ruta declarados en la operación, un creador de pruebas puede generar un campo de datos por nombre y una interfaz de solicitudes puede presentar controles en el orden de la ruta. Un analizador estático también puede ejecutar primero la extracción y detenerse de inmediato si la estructura de llaves es incorrecta, evitando errores secundarios confusos. Como el algoritmo solo realiza un recorrido determinista por caracteres, no llama a la red, no guarda la entrada, no usa valores aleatorios ni depende de la hora actual. Por ello se puede repetir con seguridad en integración continua y almacenar en caché según la entrada. Envíe la plantilla en el campo <code>text</code> y consulte la lista ordenada en <code>parameters</code>. La ejecución mediante API cuesta $0.002 por solicitud, mientras que la versión del navegador puede ejecutarse localmente. Esta capacidad extrae nombres de una sola plantilla; no resuelve variables del servidor, sustituye valores, codifica segmentos de URL ni analiza un archivo OpenAPI completo en YAML o JSON.
Qué puede hacer con ella
Compruebe declaraciones de operaciones
Compare los nombres extraídos con los parámetros de ruta declarados en OpenAPI y detecte declaraciones ausentes o sobrantes.
Cree formularios de solicitudes
Genere controles de entrada en el mismo orden en que las variables aparecen en la plantilla de ruta.
Genere pruebas de API
Convierta las variables de ruta en campos ordenados de datos antes de insertar valores de prueba en las solicitudes.
Preguntas frecuentes
¿Qué devuelve esta capacidad?
Devuelve una lista parameters con cada nombre delimitado por llaves, en orden de izquierda a derecha.
¿Qué ocurre si una llave no tiene pareja?
La solicitud falla con un error de entrada no válida que indica si la llave sin pareja abre o cierra y muestra su índice.
¿Se eliminan los nombres de parámetros repetidos?
No. Los nombres repetidos permanecen en el resultado porque la salida representa cada aparición en el orden de la plantilla.
¿Valida un documento OpenAPI completo?
No. Examina una plantilla de ruta y sus llaves; no analiza YAML, JSON, operaciones ni declaraciones de parámetros.
¿Cuánto cuesta una solicitud mediante API?
Cada solicitud mediante API cuesta $0.002. La versión del navegador puede ejecutarse sin enviar la plantilla a un servidor.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/openapi-path-params-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"/users/{id}/posts/{postId}"}'const res = await fetch("https://api.kit.forhosting.com/dev/openapi-path-params-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "/users/{id}/posts/{postId}"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/openapi-path-params-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "/users/{id}/posts/{postId}"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/openapi-path-params-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"/users/{id}/posts/{postId}"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"/users/{id}/posts/{postId}"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/openapi-path-params-extract", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "/users/{id}/posts/{postId}"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.openapi_path_params_extract",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |