Header Ads Widget

Ticker

6/recent/ticker-posts

¿Cuál es la diferencia entre Swagger y OpenAPI?

 

Si está trabajando en el espacio de la API, sin importar la capacidad, probablemente haya escuchado a la gente hablar sobre Swagger y OpenAPI. Como indica esta publicación, existe cierta confusión sobre cómo se deben usar estos términos.

Una publicación de blog de Swagger de 2017 explica que la razón por la que estos términos existen juntos es que hubo una transición en 2015 de Swagger a OpenAPI. La versión corta de esta historia es esta:

Aunque los términos una vez se refirieron a lo mismo, ya se pueden usar indistintamente ... aunque algunas personas todavía lo hacen. En 2021, OpenAPI se refiere a la especificación estándar de la industria para el diseño de API RESTful. Swagger se refiere a un conjunto de herramientas SmartBear .

En esta publicación, cubriremos todos esos muchos más detalles, observando la historia de Swagger y dónde encaja su legado en la historia de la Iniciativa OpenAPI y su Especificación OpenAPI.

Definir: Swagger (e Historia)

SmartBear mantiene las herramientas Swagger en Swagger.io .

Según Tony Tam, Swagger es "un contrato simple para una API que contiene todo lo necesario para producir o consumir una API ... Veinte páginas más o menos, y eso es todo". Y Tam debería saberlo, ya que creó Swagger .

El desarrollo de las ideas detrás de Swagger comenzó a principios de la década de 2010 como una creación de Tam cuando era el cofundador técnico de un sistema de diccionario llamado Wordnik. Más tarde se convertiría en el CTO de Wordnik y pasaría a ser el CEO de Reverb Technologies, la empresa matriz de Wordnik.

Vale la pena saber un poco sobre la historia de Tam porque demuestra los comienzos relativamente humildes de Swagger. El sistema fue desarrollado no para ser una metodología que lo abarque todo, sino como la interfaz de usuario de la propia API de Wordnik . Todo lo que vino después fue, hasta cierto punto, un feliz accidente.

La gente se comprometió con el portal de Wordnik y clamó por el estado de código abierto, y la adopción del marco por otras empresas despegó. A principios de 2015, Swagger fue adquirido de Reverb por SmartBear , con algunos cambios importantes más adelante en ese año.

Definir: OpenAPI (e historial)

La especificación OpenAPI es la especificación de API estándar de la industria independiente del proveedor compatible con Linux Foundation.

Hacia finales de 2015, SmartBear lanzó la Iniciativa OpenAPI con el patrocinio de la Fundación Linux. La especificación Swagger fue adoptada por el grupo y renombrada como Especificación OpenAPI en el proceso.

Los miembros fundadores de la Iniciativa OpenAPI incluyeron grandes nombres como Google, Apigee, PayPal, Microsoft, Capital One, Intuit y otros. Tam permaneció involucrado con Swagger, ahora OpenAPI, en la Junta de Supervisión Técnica que maneja los aspectos técnicos de la especificación durante casi dos años y actualmente trabaja en Apple, manejando la experiencia de desarrollador de iCloud.

Según el sitio Swagger , "La especificación OpenAPI (OAS) define una interfaz estándar, independiente del idioma, para las API RESTful que permite que tanto los humanos como las computadoras descubran y comprendan las capacidades del servicio sin acceso al código fuente, documentación o a través de la red. inspección de tráfico ".

La especificación OpenAPI , ahora en v3.1.0 , es esencialmente un conjunto de mejores prácticas que se refieren al control de versiones, el formato, la estructura del documento, el esquema, etc., en el contexto de las API, con el objetivo de generar consistencia y confiabilidad.

Swagger frente a OpenAPI

Como resultado de todo lo anterior, ahora es correcto hablar sobre las especificaciones de OpenAPI en lugar de usar Swagger en ese contexto. Sin embargo, el uso del término Swagger persiste en el espacio de la API y por una buena razón. A partir de 2021, podemos pensarlo así:

  • OpenAPI = La especificación en sí, antes conocida como especificación Swagger
  • Swagger = Herramientas utilizadas en la implementación de OpenAPI

Hay una variedad de herramientas disponibles que usan el apodo de Swagger, incluido Swagger Editor, Swagger UI, Swagger Codegen, Swagger Inspector y varios otros. Una lista completa de las herramientas que se utilizan a menudo junto con OpenAPI está disponible en el GitHub de OpenAPI Initiative .

Una publicación en el blog Swagger plantea la siguiente pregunta: ¿por qué las herramientas Swagger no han cambiado su nombre a OpenAPI? Puede leer una respuesta larga allí, pero la versión corta es que, aunque SmartBear donó la especificación en sí a la Iniciativa OpenAPI, no tenían la autoridad para cambiar el nombre de las herramientas principales asociadas con ella.

Sin embargo, notará que la mayoría de las herramientas de la lista anterior ahora hacen referencia a OpenAPI en sus nombres (por ejemplo, OpenAPI 3 Viewer) en lugar de Swagger. En otras palabras, todas las herramientas Swagger utilizan OpenAPI, pero no todas las herramientas OpenAPI (por ejemplo, Apicurio Studio, Lincoln, API Sprout, Fusio, Gen) son herramientas Swagger, lo cual es una distinción que vale la pena señalar.

OpenAPI y el legado de Swagger

La iniciativa OpenAPI rige la especificación OpenAPI.

Con esos grandes nombres en juego (Google, Microsoft, PayPal, etc.) dentro de la Iniciativa OpenAPI , al menos vale la pena hacer la siguiente pregunta: ¿es la adquisición * de Swagger un ejemplo de un proyecto de código abierto que se está cerrando y cerrando? por marcas masivas?

  • Usamos el término de manera vaga aquí, ya que la transición de Swagger a OpenAPI no fue una adquisición en términos tradicionales.

En una palabra, no. Como sugiere su nombre, la especificación OpenAPI permanece ... bueno, abierta. La iteración tampoco se ha ralentizado como resultado de la transición: Swagger se lanzó por primera vez en 2011, con 1.1 en 2012 y v2.0 en 2014. OpenApi 3.0 se lanzó en 2017, con parches hasta 3.0.3 en 2017, 2018, y 2020. La versión 3.1.0 se lanzó a principios de 2021.

Además, Tam destaca el valor del cambio en el video de YouTube vinculado anteriormente:

“Creo que es un paso importante para algo como Swagger entrar en esta Iniciativa OpenAPI para que pueda seguir las tendencias de la industria, la gente pueda trabajar con ella y aportar su conocimiento a lo que necesita hacer en el futuro (con suerte sin alterar para arriba), y también compartir la carga del trabajo real ".

Uno de los mayores obstáculos de la estandarización es demostrar que un sistema tiene longevidad y ha establecido una presencia suficiente para capturar, o tener el potencial de capturar, una participación suficientemente grande del mercado.

La Iniciativa OpenAPI tiene como objetivo abordar esas preocupaciones y parece haberlo hecho hasta este punto, mientras maneja el legado de Swagger con suficiente respeto para evitar una protesta de quienes lo apoyaron antes de que fuera la Especificación OpenAPI.

Es imposible decir lo que depara el futuro, pero la industria de las API parece haber adoptado con fuerza OpenAPI hasta ahora.

Publicar un comentario

0 Comentarios