Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Con el tiempo los sistemas desacoplados han proliferado, y la integración con ellos es cada vez
más frecuente, por lo que las personas que realizan la integración deben informarse de cómo se
utilizan esas API y evitar la iteración en el intento, dado que no cuentan con una visibilidad
suficiente de su uso y su integración, y para disminuir esta brecha es importante contar con una
buena documentación.
Objetivo
La presente Wiki pretende ser parte de la base de conocimiento de Arquitectura dando una vista
al producto Swagger, revisando las principales funcionalidades y su usabilidad.
Alcance
Swagger
Instalación
Diseñando API
Probando API
API de ejemplo
Introducción
Swagger
Este es un producto de código abierto para el diseño de API de manera ágil, permitiendo entre
otras cosas:
2. Mediante un Explorador de Internet (en mi caso Google Chrome) abra el archivo html
que se encuentra en la raíz del proyecto.
En mi caso me cree un Acceso Directo al archivo:
file:///C:/Instaladores/Swagger%20Editor/swagger-editor/index.html
Entonces se abrirá el programa Swagger Editor con un ejemplo cargado por default. En mi caso
yo estoy trabajando con otro proyecto.
Aquí se especifica la construcción de un archivo tipo YAML, llamado api.yml que contiene la
especificación de nuestra API del Microservicio.
Volvamos a Swagger Editor y mediante el menú principal limpiamos el editor con la opción
File/Clear Editor.
Ahora importemos el archivo api.yml.
Inmediatamente Swagger generará la documentación respecto a la API.
Al hacer clic en el botón celeste POST, se desplegará el detalle para el entendimiento del
consumo de esta API.
En el lado izquierdo se puede modificar y el lado derecho documentará los cambios realizados en
el lado izquierdo. Si introducimos un error, Swagger Editor nos informa. En la línea 6 donde dice
schemes voy a quitar una “s” y dejar scheme.
Entonces solo basta con diseñar la API. Agreguemos otro esquema, el HTTP en la línea 7.
El lado derecho documenta el cambio.
Más adelante revisaremos en más detalle la especificación OpenAPI.
Salvemos el archivo como YAML.
Entonces en el directorio definido para las descargas dejará un archivo llamado swagger.yaml
con la misma especificación definida en el archivo api.yml, la diferencia estaría en la primera
línea que es reservada para decir cómo se creó.
En este caso muestro el de otro proyecto, pero inicialmente era así:
La idea es reemplazar este archivo por el nuevo que es generado mediante Swagger Editor y
regenerar el proyecto mediante el siguiente comando:
C:\Proyectos\ncalite\ncalite-conductores>mvnw generate-sources
También te da la opción de convertirlo y salvarlo como JSON:
Entonces igual que antes descargará un archivo JSON llamado swagger.json
Arrastramos el archivo hasta el área donde dice Drop files here o lo buscamos presionando el
botón Choose Files.
Entonces Postman agregará un grupo donde el nombre del grupo corresponde al valor del
campo title.
Note que el nombre del grupo creado corresponde a la etiqueta title y la descripción
del GET corresponde a la etiqueta sumary.
La primera línea específica la herramienta con lo cual se generó el diseño. En este caso vamos a
seleccionar swagger. Fíjese que al presionar la letra “s” ya te lo propone. Seleccione con el
mouse o presione enter.
Fíjese que en el lado derecho está reclamando que le falta la etiqueta info, bueno agreguémosla.
Entonces agrega una seria de etiquetas por defecto, y nos da cuenta de la licencia entregada.
Entonces nos dirigimos a la URL indicada https://opensource.org/licenses/MIT
Al presionar el botón “Más recursos en la licencia MIT” nos indica otras licencias al respecto.
Personalmente me llama la atención por la palabra MIT ya que yo la relaciono con el Instituto
Tecnológico de Massachusetts, por el cual voy a investigar un poco más. Al indagar más al
respecto vemos que es una licencia para código abierto creada por esta institución de fama
mundial creada en el año 1980, que es muy difundida incluso un resportaje por que fue incluida
para el uso de la moneda Bitcoin.
Continuando con nuestra prueba definimos los campos necesarios, tales como version, title,
description.
Vemos que Swagger nos está reclamando la falta de información de contacto en la línea 7.
Agregamos la información de contacto faltante.
Ahora me reclama que falta la información en relación al paths
.
Antes de agregar el path vamos a agregar los esquemas (schemes):
Agregamos el path. Considere que si el titulo Libros es en plural el obtener la información de un
libro debería ser en singular o sea libro. Al momento de escribir la etiqueta get, autogenera lo
faltante:
Fíjese que, al momento de autocompletar, el cursor aun esta sobre la palabra get. Completamos
los datos faltantes:
Ya no tenemos errores en nuestra estructura:
Definamos ahora una estructura de datos tanto de entrada como de salida
Datos de entrada
o Código del Libro: Es el código único para identificar un libro
Datos de salida
o Habilitación: Es un enumerador donde puede ser:
DISPONIBLE
RESERVADO
o Autor: Nombre del autor
o Género: Es un enumerador donde puede ser
NOVELA
CIENCIA
HISTORIA
o Ubicación: Código compuesto de la repisa (aparador), gaveta dentro de la repisa
donde se encuentra el libro.
Agregamos primero el dato de entrada codigoLibro:
Fíjese en la etiqueta parameter donde declaramos la variable y luego la especificamos en la
etiqueta definitions. Esto es un simple string, pero en la respuesta agreguemos un objeto que
contenga toda la estructura antes definida.
Vemos los cambios en el object de salida HabilitacionLibro:
Fíjese que la documentación quedo completa, tanto en los parámetros de entrada como los de
salida:
Referencias
https://github.com/swagger-api/swagger-editor