Saltar al contenido principal
OpenAPI es una especificación para describir APIs. Mintlify admite documentos de OpenAPI 3.0+ para generar documentación de API interactiva y mantenerla actualizada.

Agregar un archivo de especificación de OpenAPI

Para documentar tus endpoints con OpenAPI, necesitas un documento de OpenAPI válido en formato JSON o YAML que cumpla con la especificación OpenAPI 3.0+. Puedes crear páginas de API a partir de uno o varios documentos de OpenAPI.

Describir tu API

Recomendamos los siguientes recursos para aprender a crear y estructurar tus documentos de OpenAPI.
La Guía de OpenAPI de Swagger es para OpenAPI v3.0, pero casi toda la información es aplicable a v3.1. Para obtener más información sobre las diferencias entre v3.0 y v3.1, consulta Migración de OpenAPI 3.0 a 3.1.0 en el blog de OpenAPI.

Especificar la URL de tu API

Para habilitar funciones de Mintlify como el Área de pruebas de API, agrega un campo servers a tu documento de OpenAPI con la URL base de tu API.
{
  "servers": [
    {
      "url": "https://api.example.com/v1"
    }
  ]
}
En un documento de OpenAPI, los distintos endpoints de la API se especifican por sus rutas, como /users/{id} o simplemente /. La URL base define dónde deben añadirse estas rutas. Para más información sobre cómo configurar el campo servers, consulta API Server and Base Path en la documentación de OpenAPI. El Área de pruebas de API usa estas URL de servidor para determinar adónde enviar las solicitudes. Si especificas varios servidores, un menú desplegable permitirá a los usuarios alternar entre ellos. Si no especificas un servidor, el Área de pruebas de API usará el modo simple, ya que no puede enviar solicitudes sin una URL base. Si tu API tiene endpoints que existen en diferentes URL, puedes sobrescribir el campo de servidor para una ruta u operación específica.

Especificar la autenticación

Para habilitar la autenticación en tu documentación y en el área de pruebas de la API, configura los campos securitySchemes y security en tu documento de OpenAPI. Las descripciones de la API y el Área de pruebas de API añadirán campos de autenticación según las configuraciones de seguridad de tu documento de OpenAPI.
1

Define your authentication method.

Agrega un campo securitySchemes para definir cómo se autentican los usuarios.Este ejemplo muestra una configuración para autenticación bearer.
{
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}
2

Apply authentication to your endpoints.

Agrega un campo security para requerir autenticación.
{
  "security": [
    {
      "bearerAuth": []
    }
  ]
}
Los tipos comunes de autenticación incluyen:
  • API Keys: Para claves en encabezado, query o cookie.
  • Bearer: Para tokens JWT u OAuth.
  • Basic: Para nombre de usuario y contraseña.
Si distintos endpoints de tu API requieren diferentes métodos de autenticación, puedes sobrescribir el campo de seguridad para una operación específica. Para más información sobre cómo definir y aplicar la autenticación, consulta Authentication en la documentación de OpenAPI.

Extensión x-mint

La extensión x-mint es una extensión personalizada de OpenAPI que ofrece un mayor control sobre cómo se genera y se muestra la documentación de tu API.

Metadatos

Sobrescribe los metadatos predeterminados de las páginas de API generadas agregando x-mint: metadata a cualquier operación. Puedes usar cualquier campo de metadatos válido en el frontmatter de MDX, excepto openapi:
{
  "paths": {
    "/users": {
      "get": {
        "summary": "Obtener usuarios",
        "description": "Obtener una lista de usuarios",
        "x-mint": {
          "metadata": {
            "title": "Listar todos los usuarios",
            "description": "Obtener datos de usuarios paginados con opciones de filtrado",
            "og:title": "Mostrar una lista de usuarios",
          }
        },
        "parameters": [
          {
            // Configuración del parámetro
          }
        ]
      }
    }
  }
}

Contenido

Agrega contenido antes de la documentación de API generada automáticamente usando x-mint: content:
{
  "paths": {
    "/users": {
      "post": {
        "summary": "Crear usuario",
        "x-mint": {
          "content": "## Requisitos previos\n\nEste endpoint requiere privilegios de administrador y tiene límites de tasa.\n\n<Note>Las direcciones de correo electrónico de los usuarios deben ser únicas en todo el sistema.</Note>"
        },
        "parameters": [
          {
            // Parameter configuration
          }
        ]
      }
    }
  }
}
La extensión content es compatible con todos los componentes y el formato MDX de Mintlify.

Href

Cambia la URL de la página del endpoint en tu documentación usando x-mint: href:
{
  "paths": {
    "/legacy-endpoint": {
      "get": {
        "summary": "Endpoint heredado",
        "x-mint": {
          "href": "/deprecated-endpoints/legacy-endpoint"
        }
      }
    },
    "/documented-elsewhere": {
      "post": {
        "summary": "Endpoint especial"
        "x-mint": {
          "href": "/guides/special-endpoint-guide"
        }
      }
    }
  }
}
Cuando x-mint: href está presente, la entrada de navegación enlaza directamente a la URL especificada en lugar de generar una página de API.

MCP

Expón selectivamente endpoints como herramientas del Model Context Protocol (MCP) usando x-mint: mcp. Habilita solo los endpoints que sean seguros para el acceso público a través de herramientas de IA.
mcp
object
La configuración de MCP para el endpoint.
{
  "paths": {
    "/users": {
      "post": {
        "summary": "Create user",
        "x-mint": {
          "mcp": {
            "enabled": true
          },
          // ...
        }
      }
    },
    "/users": {
      "delete": {
        "summary": "Delete user (admin only)",
        // No `x-mint: mcp` so this endpoint is not exposed as an MCP tool
        // ...
      }
    }
  }
}
Para obtener más información, consulta Model Context Protocol.

Rellenar automáticamente páginas de API

Agrega un campo openapi a cualquier elemento de navegación en tu docs.json para generar automáticamente páginas para endpoints de OpenAPI. Puedes controlar dónde aparecen estas páginas en tu estructura de navegación, ya sea como secciones de API dedicadas o junto con otras páginas. El campo openapi acepta una ruta de archivo en tu repositorio de documentación o una URL a un documento de OpenAPI alojado. Las páginas de endpoints generadas tienen estos metadatos predeterminados:
  • title: El campo summary de la operación, si está presente. Si no hay summary, el título se genera a partir del método HTTP y del endpoint.
  • description: El campo description de la operación, si está presente.
  • version: El valor de version del ancla o pestaña principal, si está presente.
  • deprecated: El campo deprecated de la operación. Si es true, aparecerá una etiqueta de “deprecated” junto al título del endpoint en la navegación lateral y en la página del endpoint.
Para excluir endpoints específicos de tus páginas de API generadas automáticamente, agrega la propiedad x-hidden a la operación en tu especificación de OpenAPI.
Hay dos enfoques para agregar páginas de endpoints a tu documentación:
  1. Secciones de API dedicadas: Referencia especificaciones de OpenAPI en elementos de navegación para secciones de API dedicadas.
  2. Endpoints selectivos: Referencia endpoints específicos en tu navegación junto con otras páginas.

Secciones de API dedicadas

Genera secciones de API dedicadas agregando un campo openapi a un elemento de navegación y sin otras páginas. Se incluirán todos los endpoints de la especificación:
"navigation": {
  "tabs": [
    {
        "tab": "Referencia de la API"
        "openapi": "https://petstore3.swagger.io/api/v3/openapi.json"
    }
  ]
}
Puedes usar varias especificaciones de OpenAPI en diferentes secciones de navegación:
"navigation": {
  "tabs": [
    {
      "tab": "Referencia de la API",
      "groups": [
        {
          "group": "Usuarios",
          "openapi": {
            "source": "/path/to/openapi-1.json",
            "directory": "api-reference"
          }
        },
        {
          "group": "Administración"
          "openapi": {
            "source": "/path/to/openapi-2.json",
            "directory": "api-reference"
          }
        }
      ]
    }
  ]
}
El campo directory es opcional y especifica dónde se almacenan las páginas de API generadas en tu repositorio de documentación. Si no se especifica, se usará por defecto el directorio api-reference de tu repositorio.

Endpoints selectivos

Cuando necesites más control sobre dónde aparecen los endpoints en tu documentación, puedes referenciar endpoints específicos en la navegación. Este enfoque te permite generar páginas para endpoints de API junto con otros contenidos.

Definir una especificación OpenAPI predeterminada

Configura una especificación OpenAPI predeterminada para un elemento de navegación. Luego referencia endpoints específicos en el campo pages:
"navigation": {
  "tabs": [
    {
      "tab": "Primeros pasos",
      "pages": [
        "quickstart",
        "installation"
      ]
    },
    {
      "tab": "Referencia de la API",
      "openapi": "/path/to/openapi.json",
      "pages": [
        "api-overview",
        "GET /users",
        "POST /users",
        "guides/authentication"
      ]
    }
  ]
}
Cualquier entrada de página que coincida con el formato METHOD /path generará una página de API para ese endpoint usando la especificación predeterminada de OpenAPI.

Herencia de la especificación de OpenAPI

Las especificaciones de OpenAPI se heredan a lo largo de la jerarquía de navegación. Los elementos de navegación secundarios heredan la especificación de OpenAPI de su elemento principal, a menos que definan la suya propia:
{
  "group": "Referencia de la API",
  "openapi": "/path/to/openapi-v1.json",
  "pages": [
    "overview",
    "authentication",
    "GET /users",
    "POST /users",
    {
      "group": "Pedidos",
      "openapi": "/path/to/openapi-v2.json",
      "pages": [
        "GET /orders",
        "POST /orders"
      ]
    }
  ]
}

Endpoints individuales

Hace referencia a endpoints específicos sin establecer una especificación de OpenAPI predeterminada, incluyendo la ruta del archivo:
"navigation": {
  "pages": [
    "introducción",
    "guías de usuario"
    "/path/to/openapi-v1.json POST /users",
    "/path/to/openapi-v2.json GET /orders"
  ]
}
Este enfoque es útil cuando necesitas endpoints individuales de distintas especificaciones o solo quieres incluir algunos endpoints seleccionados.

Crear archivos MDX para páginas de API

Para controlar páginas de endpoints individuales, crea páginas MDX para cada operación. Esto te permite personalizar los metadatos de la página, añadir contenido, omitir ciertas operaciones o reordenar páginas en tu navegación a nivel de página. Consulta un ejemplo de página de OpenAPI en MDX de MindsDB y cómo aparece en su documentación en producción.

Especificar archivos manualmente

Crea una página MDX para cada endpoint y especifica qué operación de OpenAPI mostrar utilizando el campo openapi en el frontmatter. Cuando haces referencia a una operación de OpenAPI de esta manera, el nombre, la descripción, los parámetros, las respuestas y el Área de pruebas de API se generan automáticamente a partir de tu documento de OpenAPI. Si tienes varios archivos de OpenAPI, incluye la ruta del archivo en tu referencia para asegurarte de que Mintlify encuentre el documento de OpenAPI correcto. Si solo tienes un archivo de OpenAPI, Mintlify lo detectará automáticamente.
Este enfoque funciona independientemente de si has establecido una especificación de OpenAPI predeterminada en tu navegación. Puedes hacer referencia a cualquier endpoint de cualquier especificación de OpenAPI incluyendo la ruta del archivo en el frontmatter.
Si deseas hacer referencia a un archivo externo de OpenAPI, añade la URL del archivo a tu docs.json.
---
title: "Get users"
description: "Returns all plants from the system that the user has access to"
openapi: "/path/to/openapi-1.json GET /users"
deprecated: true
version: "1.0"
---
El método y la ruta deben coincidir exactamente con la definición en tu especificación de OpenAPI. Si el endpoint no existe en el archivo de OpenAPI, la página quedará vacía.

Generar archivos MDX automáticamente

Utiliza nuestro scraper de Mintlify para generar automáticamente páginas MDX para documentos de OpenAPI grandes.
Tu documento de OpenAPI debe ser válido o los archivos no se generarán automáticamente.
El scraper genera:
  • Una página MDX por cada operación en el campo paths de tu documento de OpenAPI.
  • Si tu documento de OpenAPI es versión 3.1+, una página MDX por cada operación en el campo webhooks de tu documento de OpenAPI.
  • Un array de entradas de navegación que puedes añadir a tu docs.json.
1

Generar archivos `MDX`.

npx @mintlify/scraping@latest openapi-file <path-to-openapi-file>
2

Especificar una carpeta de salida.

npx @mintlify/scraping@latest openapi-file <path-to-openapi-file> -o api-reference
Añade la opción -o para indicar una carpeta donde guardar los archivos. Si no se especifica una carpeta, los archivos se crearán en el directorio de trabajo.

Crear archivos MDX para esquemas de OpenAPI

Puedes crear páginas individuales para cualquier esquema de OpenAPI definido en el campo components.schema de un documento de OpenAPI:
---
openapi-schema: OrderItem
---

Webhooks

Los webhooks son devoluciones de llamada HTTP que tu API envía para notificar a sistemas externos cuando se producen eventos. Los webhooks son compatibles en documentos de OpenAPI 3.1+.

Define webhooks en tu especificación de OpenAPI

Agrega un campo webhooks a tu documento de OpenAPI junto al campo paths. Para obtener más información sobre cómo definir webhooks, consulta Webhooks en la documentación de OpenAPI.

Referencia webhooks en archivos MDX

Al crear páginas MDX para webhooks, usa webhook en lugar de métodos HTTP como GET o POST:
---
title: "Webhook de ejemplo"
description: "Se activa cuando se produce un evento"
openapi: "path/to/openapi-file webhook example-webhook-name"
---
El nombre del webhook debe coincidir exactamente con la clave definida en el campo webhooks de tu especificación de OpenAPI.