Swagger es un conjunto de herramientas para desarrolladores de API de SmartBear Software [ 1 ] y una especificación anterior en la que se basa la especificación OpenAPI . [ 2 ]
Historia
El proyecto Swagger API fue creado en 2011 por Tony Tam, cofundador técnico del sitio de diccionarios Wordnik . Durante el desarrollo de los productos de Wordnik, la necesidad de automatizar la documentación de la API y la generación del SDK del cliente se convirtió en una importante fuente de frustración. Tam diseñó una representación JSON simple de la API, basándose en la flexibilidad del protocolo HTTP y utilizando muchas características de las herramientas creadas para el protocolo SOAP . El concepto de la interfaz de usuario fue propuesto por Ayush Gupta, quien sugirió que una interfaz de usuario interactiva beneficiaría a los usuarios finales que deseaban "probar" y desarrollar con la API. Ramesh Pidikiti lideró la implementación del generador de código inicial y el diseñador/desarrollador Zeke Sikelianos acuñó el nombre Swagger. [ 3 ] El proyecto Swagger API se hizo de código abierto en septiembre de 2011. Poco después de su lanzamiento, se agregaron varios componentes nuevos al proyecto, incluido un validador independiente y soporte para Node.js y Ruby on Rails .
En sus inicios, Swagger tuvo una acogida modesta entre pequeñas empresas y desarrolladores independientes. Las API HTTP generalmente carecían de un mecanismo de descripción legible por máquina, y Swagger proporcionó una forma sencilla y accesible de lograrlo. Tony fue invitado a una reunión con algunos de los líderes de opinión de la industria de las API, como John Musser ( ProgrammableWeb ), Marsh Gardiner ( Apigee , ahora un producto de Google), Marco Palladino ( Kong ) y Kin Lane (API Evangelist), para debatir sobre un esfuerzo de estandarización en torno a las descripciones de las API. Si bien la reunión no dio como resultado un plan concreto, posicionó a Swagger como una innovación crucial en el ámbito de las API.
Gracias al uso de la licencia de código abierto Apache 2.0, varios productos y servicios en línea comenzaron a incluir Swagger en sus ofertas, lo que se aceleró rápidamente tras su adopción por parte de Apigee, Intuit, Microsoft, IBM y otros que comenzaron a respaldar públicamente el proyecto Swagger.
Poco después de la creación de Swagger, se introdujeron estructuras alternativas para describir las API HTTP, siendo las más populares API Blueprint en abril de 2013 y RESTful API Modeling Language (RAML) en septiembre de 2013. Si bien estos productos de la competencia contaban con un respaldo financiero mayor que Swagger, inicialmente se centraron en casos de uso diferentes, y a mediados de 2014, el interés por Swagger crecía más rápidamente que la combinación de los otros dos [fuente: Google Trends].
En noviembre de 2015, SmartBear Software , la empresa que mantenía Swagger, anunció que estaba ayudando a crear una nueva organización, bajo el patrocinio de la Linux Foundation , llamada OpenAPI Initiative. Varias empresas, incluidas Google , IBM y Microsoft, son miembros fundadores. [ 4 ]
El 1 de enero de 2016, la especificación Swagger pasó a llamarse Especificación OpenAPI y se trasladó a un nuevo repositorio de software en GitHub . [ 5 ] Si bien la especificación en sí no se modificó, este cambio de nombre significó la separación entre el formato de descripción de la API y las herramientas de código abierto.
En julio de 2017, las herramientas Swagger se descargaban más de 100.000 veces al día, según los repositorios Sonatype y npm .
Uso
El uso de las herramientas de código abierto de Swagger se puede dividir en diferentes casos de uso: desarrollo, interacción con API y documentación.
Desarrollo de API
Al crear API, se pueden usar las herramientas de Swagger para generar automáticamente un documento Open API a partir del propio código. Esto integra la descripción de la API en el código fuente del proyecto y se conoce informalmente como desarrollo de API "code-first" o "bottom-up".
Como alternativa, utilizando Swagger Codegen , los desarrolladores pueden desacoplar el código fuente del documento de la API abierta y generar el código del cliente y del servidor directamente a partir del diseño. Esto permite posponer la fase de codificación.
Interacción con API
Mediante el proyecto Swagger Codegen, los usuarios finales generan SDK de cliente directamente a partir del documento OpenAPI, lo que reduce la necesidad de código de cliente escrito manualmente. En agosto de 2017, el proyecto Swagger Codegen admitía más de 50 lenguajes y formatos diferentes para la generación de SDK de cliente.
Documentación de API
Cuando se describe en un documento OpenAPI, la herramienta de código abierto Swagger se puede usar para interactuar directamente con la API a través de la interfaz de usuario de Swagger . Este proyecto permite conexiones directas a APIs en vivo mediante una interfaz de usuario interactiva basada en HTML . Se pueden realizar solicitudes directamente desde la interfaz de usuario y el usuario puede explorar las opciones de la misma. [ 6 ]
Véase también
Referencias
- ^ "Acerca de" . Documentación de API y herramientas de diseño para equipos | Swagger . Consultado el 24 de abril de 2022 .
- ^ "Preguntas frecuentes - Iniciativa OpenAPI" . Iniciativa OpenAPI . Consultado el 24 de abril de 2022 .
- ^ Ralphson, Mike (17 de diciembre de 2018). "Una breve historia de la especificación OpenAPI" . Comunidad DEV . Recuperado el 27 de marzo de 2025 .
- ^ "Nuevo proyecto colaborativo para extender la especificación Swagger para la creación de aplicaciones y servicios conectados" . www.linuxfoundation.org . Archivado del original el 27 de abril de 2016. Consultado el 22 de abril de 2016 .
- ^ "La especificación OpenAPI" . GitHub . 19 de febrero de 2022. Consultado el 19 de febrero de 2023 .
- ^ "Documentando sus API existentes: la documentación de API simplificada con OpenAPI y Swagger" . swagger.io . Consultado el 21 de marzo de 2023 .
Enlaces externos
- Sitio web de la Iniciativa de API Abiertas (OAI)
- Sitio web de Swagger
- Especificación OpenAPI en GitHub
- Editor y Studio de Eclipse OpenAPI (OAS)
- Swagger: herramienta para la documentación de API.
- Wiki de uso del editor OpenAPI y Test Studio
- Interfaces de programación de aplicaciones
- Lenguajes de marcado