Genera tipos TypeScript listos desde una spec OpenAPI
Tienes una spec OpenAPI para tu API y necesitas tipos TypeScript para ella. Ahora mismo. Sin escribir cada ruta y cada forma a mano, sin perder un parámetro, sin olvidar que ese campo de paths es opcional.
Pega el YAML o JSON a la izquierda, obtén un tipo `paths` limpio (URL a método a formas de petición y respuesta) más los Schema components tipados a la derecha. El generador sigue los punteros \$ref, recorre cada operationId y emite un solo fichero `.ts` autocontenido que puedes meter en tu proyecto.
Tres opciones rápidas: solo schemas (omite el bloque `paths` cuando solo quieres las formas de datos), JSDoc desde descripciones (para que tu IDE muestre los docs de la API al pasar el ratón) y declaraciones `enum` reales en lugar de uniones de string literal cuando prefieras ese estilo.
Cómo usarlo
- Pega tu spec OpenAPI a la izquierda. YAML o JSON, versión 3.0 o 3.1. El ejemplo por defecto es la spec mínima de Petstore para que veas el generador funcionando al instante.
- Elige un formato: déjalo en Auto y la herramienta detecta YAML o JSON desde el primer carácter (`{` significa JSON, cualquier otra cosa es YAML). Fuerza uno explícitamente si tu spec es inusual.
- Activa "Solo schema components" cuando solo quieras las formas de datos (el bloque `components.schemas`) sin el mapeo `paths`. Útil cuando escribes tu propio cliente HTTP a mano.
- Activa "Añadir JSDoc desde descripciones" para mantener tus campos `description` y `title` como comentarios JSDoc encima de cada propiedad generada. Tu IDE mostrará los docs de la API al pasar el ratón.
- Activa "Usar enums en lugar de uniones de string" para campos con `enum: [available, pending, sold]`. Con esto activado obtienes `enum Status { available, pending, sold }`. Apagado obtienes `"available" | "pending" | "sold"` (por defecto, más amigable para tree-shaking).
- Pulsa `Copiar` para poner el resultado en tu portapapeles o `Descargar` para guardarlo como un fichero `openapi.ts`. Pégalo en tu proyecto, importa los tipos `paths` y `components`, listo.
- La salida se regenera automáticamente mientras escribes (con una pausa de medio segundo). No hace falta pulsar un botón de build.
Cuándo es útil
Cinco situaciones concretas donde esto te ahorra horas de tipeo manual:
- Onboarding a una API existente. El equipo backend publicó una spec OpenAPI. Pégala aquí, obtén cada forma de petición y respuesta tipada en segundos. Construye un wrapper `fetch` tipado alrededor de ellas y tu IDE autocompleta cada endpoint.
- Mantener tipos sincronizados con el backend. La spec es el contrato. Vuelve a ejecutar la herramienta cada vez que el backend entregue un nuevo endpoint, pega el nuevo `openapi.ts` en tu proyecto, el compilador TypeScript marca cada sitio que necesita actualización.
- Generar un SDK tipado desde una API pública. Stripe, GitHub, Linear y la mayoría de proveedores SaaS modernos publican una spec OpenAPI. Suéltala aquí y tienes un cliente tipado en un minuto, sin `any` por ninguna parte.
- Escribir un test fixture desde una forma real. Necesitas un `Pet` mock para un test. Genera los tipos, pasa el ratón por el tipo en tu editor, el IDE te muestra cada campo requerido. Adiós a adivinar qué devuelve realmente la API.
- Migrar de Swagger 2.0 / OpenAPI 3.0 a 3.1. Ambas versiones están soportadas. Pega la spec vieja, regenera, compara el diff: ahora puedes ver exactamente qué campos ganaron semántica `nullable` o se movieron a una unión etiquetada.
Para probar los endpoints reales una vez los tipos estén en su sitio, el probador de peticiones HTTP habla todos los métodos, y el generador de mock API puede sustituir al backend real mientras construyes el frontend.