La especificación OpenAPI , originalmente conocida como Swagger Specification , es una especificación para archivos de interfaz legibles por máquina para describir, producir, consumir y visualizar servicios web RESTful . [1] Originalmente parte del marco Swagger , se convirtió en un proyecto separado en 2016, supervisado por la Iniciativa OpenAPI, un proyecto de colaboración de código abierto de la Fundación Linux . [2] Swagger y algunas otras herramientas pueden generar código, documentación y casos de prueba con un archivo de interfaz.
Historia
El desarrollo de Swagger comenzó a principios de 2010 por Tony Tam, que trabajaba en la empresa de diccionarios en línea Wordnik . [3] En marzo de 2015, SmartBear Software adquirió la especificación Swagger API de código abierto de Reverb Technologies, la empresa matriz de Wordnik. [4]
En noviembre de 2015, SmartBear anunció que estaba creando una nueva organización llamada OpenAPI Initiative bajo el patrocinio de la Fundación Linux . Otras empresas miembro fundadoras fueron 3scale , Apigee , Capital One , Google , IBM , Intuit , Microsoft , PayPal y Restlet. [5] [6] [7] SmartBear donó la especificación Swagger al nuevo grupo. El grupo también estaba considerando RAML y API Blueprint . [8] [9]
El 1 de enero de 2016, la especificación Swagger pasó a llamarse Especificación OpenAPI (OAS) y se trasladó a un nuevo repositorio de GitHub . [10]
En septiembre de 2016, la conferencia API World presentó un premio API Infrastructure a SmartBear por su trabajo continuo en Swagger. [11]
En julio de 2017, la Iniciativa OpenAPI lanzó la versión 3.0.0 de su especificación. [12] MuleSoft , el principal contribuyente al Lenguaje de Modelado API RESTful alternativo (RAML), se unió a la OEA y abrió su herramienta API Modeling Framework, que puede generar documentos OAS a partir de la entrada RAML. [13]
Fechas de lanzamiento
Versión | Fecha | Notas [14] |
---|---|---|
3.1.0 | 15/02/2021 | Lanzamiento de la especificación OpenAPI 3.1.0 |
3.0.3 | 2020-02-20 | Lanzamiento de parche de la especificación OpenAPI 3.0.3 |
3.0.2 | 2018-10-08 | Lanzamiento de parche de la especificación OpenAPI 3.0.2 |
3.0.1 | 2017-12-06 | Lanzamiento de parche de la especificación OpenAPI 3.0.1 |
3.0.0 | 2017-07-26 | Lanzamiento de la especificación OpenAPI 3.0.0 |
2.0 | 2014-09-08 | Lanzamiento de Swagger 2.0 |
1.2 | 2014-03-14 | Publicación inicial del documento formal |
1.1 | 2012-08-22 | Lanzamiento de Swagger 1.1 |
1.0 | 2011-08-10 | Primera versión de la especificación Swagger |
Uso
Las aplicaciones implementadas basadas en archivos de interfaz OpenAPI pueden generar automáticamente documentación de métodos, parámetros y modelos. Esto ayuda a mantener sincronizados la documentación , las bibliotecas cliente y el código fuente. [15]
Características
La especificación de OpenAPI es independiente del idioma. Con la especificación de recursos declarativos de OpenAPI , los clientes pueden comprender y consumir servicios sin conocimiento de la implementación del servidor o acceso al código del servidor. [15]
Herramientas que funcionan con OpenAPI
La Iniciativa OpenAPI mantiene una lista de implementaciones para la versión 3.0 de la especificación. SmartBear todavía marca sus herramientas OpenAPI con el sobrenombre de Swagger. El marco de la interfaz de usuario de Swagger permite que tanto los desarrolladores como los no desarrolladores interactúen con la API en una interfaz de usuario de espacio aislado que brinda información sobre cómo responde la API a los parámetros y opciones. Swagger puede manejar tanto JSON como XML . [15]
Swagger Codegen contiene un motor basado en plantillas para generar documentación, clientes de API y stubs de servidor en diferentes idiomas mediante el análisis de la definición de OpenAPI. En julio de 2018, William Cheng, el principal contribuyente de Swagger Codegen, y más de 40 colaboradores de Swagger Codegen bifurcaron el código en un proyecto llamado OpenAPI Generator bajo la organización OpenAPI Tools. [16] [17]
Ver también
- Transferencia de estado representacional
- Descripción general de los lenguajes de descripción de API RESTful, incluidos RAML, WADL, WSDL y otros.
Referencias
- ^ "La Fundación Linux quiere extender Swagger en edificios conectados | Business Cloud News" . Archivado desde el original el 6 de mayo de 2016 . Consultado el 22 de abril de 2016 .
- ^ "Carta de la Iniciativa OpenAPI" . Iniciativa OpenAPI . Consultado el 12 de noviembre de 2019 .
- ^ "El creador de Swagger se une a SmartBear" . Consultado el 6 de agosto de 2019 .
- ^ "SmartBear asume el patrocinio del proyecto de código abierto Swagger API" . SmartBear . Consultado el 25 de marzo de 2015 .
- ^ "Preguntas frecuentes" . Iniciativa OpenAPI . Consultado el 12 de noviembre de 2019 .
- ^ "SmartBear, la Fundación Linux lanza la iniciativa de API abierta para evolucionar Swagger" . Web programable . 10 de noviembre de 2015 . Consultado el 21 de abril de 2016 .
- ^ "Nuevo proyecto colaborativo para ampliar la especificación Swagger para la construcción de aplicaciones y servicios conectados" . www.linuxfoundation.org . Archivado desde el original el 27 de abril de 2016 . Consultado el 22 de abril de 2016 .
- ^ Montcheuil, Yves de. En 2016, cristalizará la necesidad de un metalenguaje API ” . InfoWorld . Consultado el 25 de abril de 2016 .
- ^ "Amazon API Gateway ahora admite la importación de definiciones Swagger" . InfoQ . Consultado el 25 de abril de 2016 .
- ^ Iniciativa OpenAPI. "Especificación OpenAPI" . GitHub . Consultado el 12 de noviembre de 2019 .
- ^ "Swagger gana el premio API 2016 por infraestructura API" . Blog de Swagger . Consultado el 27 de julio de 2018 .
- ^ "La OAI anuncia la especificación OpenAPI 3.0.0" . OpenAPIs . Consultado el 19 de abril de 2018 .
- ^ "El espacio de la API HTTP se está consolidando en torno a OAS" . InfoQ . Consultado el 14 de mayo de 2017 .
- ^ [b "OpenAPI Specification Version 3.0.4"] Compruebe el
|url=
valor ( ayuda ) . Consultado el 23 de abril de 2020 . - ^ a b c "swagger-api / swagger-spec" . GitHub . Consultado el 1 de diciembre de 2015 .
- ^ "Swagger Codegen ahora es OpenAPI Generator" . Consultado el 6 de agosto de 2019 .
- ^ "Swagger Codegen Fork: Preguntas y respuestas" . Consultado el 6 de agosto de 2019 .
Bibliografía
- Haupt, F .; Karastoyanova, D .; Leymann, F .; Schroth, B. (2014). Un enfoque basado en modelos para servicios compatibles con REST . ICWS 2014. 2014 IEEE International Conference on Web Services . págs. 129-136. doi : 10.1109 / ICWS.2014.30 . ISBN 978-1-4799-5054-6.
- Pautasso, Cesare (2021). Hermosas API . LeanPub. pag. 100.
enlaces externos
- Sitio web de la Iniciativa OpenAPI (OAI)
- Sitio web de Swagger
- Especificación de OpenAPI en GitHub
- Directorio de definiciones de OpenAPI
- Editor de OpenAPI: un editor y estudio de interfaz de usuario enriquecido Eclipse OpenAPI (OAS) para diseñar, desarrollar y probar OAS3 / OpenAPI
- OpenAPI para intercambio electrónico de datos (EDI)
- Editor de OpenAPI de Remain API Studio. Un editor de OpenAPI enriquecido y un entorno de desarrollo completo que cumple con las especificaciones de OAS3
- Editor de OpenAPI y Wiki de uso de Test Studio