La especificación de OpenAPI es una especificación abierta impulsada por la comunidad dentro de la iniciativa OpenAPI, un proyecto de colaboración de la Fundación Linux.
La especificación de OpenAPI (OAS) define una descripción estándar de interfaz de lenguaje de programación para la interfaz de lenguaje para las API HTTP. Esto permite a los humanos y a las computadoras descubrir y comprender las capacidades de un servicio sin requerir acceso al código fuente, documentación adicional o inspección del tráfico de red. Cuando se define correctamente a través de OpenAPI, un consumidor puede comprender e interactuar con el servicio remoto con una cantidad mínima de lógica de implementación. Similar a lo que las descripciones de interfaz han hecho para la programación de nivel inferior, la especificación de OpenAPI elimina las conjeturas para llamar a un servicio.
Los casos de uso para documentos de definición de API legibles por máquina incluyen, pero no se limitan a: documentación interactiva; generación de código para documentación, clientes y servidores; y automatización de casos de prueba. Los documentos de OpenAPI describen los servicios de API y están representados en formatos YAML o JSON. Estos documentos pueden ser producidos y atendidos estáticamente o generarse dinámicamente a partir de una aplicación.
La especificación de OpenAPI no requiere reescribir las API existentes. No requiere vincular ningún software a un servicio: el servicio descrito puede ni siquiera ser propiedad del creador de su descripción. Sin embargo, requiere que las capacidades del servicio se describan en la estructura de la especificación de OpenAPI. No todos los servicios pueden describirse por OpenAPI: esta especificación no está destinada a cubrir todos los estilo posible de API HTTP, pero incluye soporte para API REST. La especificación de OpenAPI no exige un proceso de desarrollo específico como el diseño primero o el código primero. Facilita cualquier técnica estableciendo interacciones claras con una API HTTP.
Este proyecto GitHub es el punto de partida para OpenAPI. Aquí encontrará la información que necesita sobre la especificación de OpenAPI, ejemplos simples de cómo se ve y alguna información general sobre el proyecto.
Este repositorio contiene las fuentes de Markdown para todas las versiones de especificaciones de OpenAPI publicadas. Para las notas de lanzamiento y las versiones candidatas, consulte la página de versiones.
Cada carpeta en este repositorio, como esquemas y pruebas, debe contener carpetas relacionadas con las versiones actuales y anteriores de la especificación.
Si solo desea ver que funcione, consulte la lista de ejemplos actuales.
¿Buscando ver cómo puede crear su propia definición de OpenApi, presentarla o usarla de otra manera? Consulte la creciente lista de implementaciones.
El proceso actual para desarrollar la especificación de OpenAPI se describe en las directrices contribuyentes.
El desarrollo de la próxima versión de la especificación de OpenAPI es guiado por el Comité Directivo Técnico (TSC). Este grupo de comandantes aporta su experiencia en API, incorpora comentarios de la comunidad y expanden el grupo de comitadores según corresponda. Toda la actividad de desarrollo en la especificación futura se realizará como características y se fusionará en esta rama. Tras la liberación de la especificación futura, esta rama se fusionará con main
.
El TSC posee conferencias web semanales para revisar las solicitudes de extracción abierta y discutir cuestiones abiertas relacionadas con la especificación en evolución de OpenAPI. La participación en llamadas semanales y sesiones de trabajo programadas está abierta a la comunidad. Puede ver todo el calendario de reuniones técnicas de OpenAPI en línea.
La iniciativa OpenAPI fomenta la participación de individuos y empresas por igual. Si desea participar en la evolución de la especificación de OpenAPI, considere tomar las siguientes acciones:
No todos los comentarios pueden ser acomodados, y puede haber argumentos sólidos a favor o en contra de un cambio apropiado para la especificación.
Ver: Licencia (Apache-2.0)