Академический Документы
Профессиональный Документы
Культура Документы
Swagger permite describir la estructura de sus API para que las máquinas puedan leerlas,
cuenta con la capacidad de las API para describir su propia estructura que es la raíz de
toda la genialidad en Swagger. También podemos generar automáticamente bibliotecas
de clientes para su API en muchos idiomas y explorar otras posibilidades, como las
pruebas automatizadas. Swagger hace esto pidiéndole a su API que devuelva un YAML
o JSON que contiene una descripción detallada de toda su API.
Swagger tambien nos ofrece una serie de reglas, herramientas y especificaciones que nos
ayudan a documentar nuestras APIs.
Con swagger puedes describir, producir, consumir y visualizar APIs, por lo que te será
interesante como desarrollador de tu proyecto, pero también desde el punto de vista de un
tercero que pudiese consumir tu API, o un usuario que busca información sobre un error
o como tu API está construida, o un tester de tu equipo que quiere probar la funcionalidad
de backend como primera medida para excluir un fallo en esta lado para centrarse en
Frontend o no.
Ilustración 1 Mapa de construcción de Swagger
Swagger UI
Swagger Editor
Swagger Editor es un editor de código abierto para diseñar, definir y documentar API
RESTful en la especificación Swagger. Swagger Editor puede ejecutarse localmente o
accederse en la Web. SwaggerHub trae las herramientas Editor de Swagger, UI y Codegen
a la nube en un diseño y documentación API integrados, creados para equipos API que
trabajan con la especificación Swagger (OpenAPI).
Ilustración 3 Aplicación Swagger Editor
Balanceo de carga
Arquitectura de Ribbon
Ribbon utiliza básicamente dos elementos a la hora de decidir cuál será la instancia a la
que finalmente derivará la petición, estos dos elementos son los balanceadores (con sus
filtros asociados) y las reglas.
Así, en primer lugar, Ribbon utilizará un balanceador y filtros para descartar una serie de
instancias del microservicio a invocar, en base a diversos criterios: que las instancias estén
caídas, que estén en una zona con una alta carga de peticiones…
Una vez pasada esta primera etapa quedarán una serie de instancias que son las que
cumplen las condiciones implementadas en los filtros, y ahí entrarán en juego las reglas
de balanceo para determinar a cuál de esas instancias enviar la petición.
Ribbon dispone de diferentes filtros y reglas, así como la posibilidad de implementar los
que deseemos, cosa que haremos en las siguientes secciones.
Funcionamiento en Ribbon
El cliente usa la clase LoadBalancerClient que en cada invocación del método choose ()
devuelve una instancia diferente de servicio realizando balanceo de carga utilizando el
método round-robin. La clase ServiceInstance proporciona la URL de la instancia del
servicio.
Ilustración 4 Creación del package
La clase del servicio y los comandos para iniciar el servicio de registro y descubrimiento,
el servicio de configuración, las instancias del servicio en diferentes puertos y el cliente.
Ribbon posee numerosas propiedades de configuración a nivel global para todos los
clientes de servicios o de forma específica para cada servicio ya sea con la anotación
@RibbonClient o mediante la configuración en archivos externos de Spring Boot.
Algunas propiedades de configuración interesantes son las de timeout que permiten que
un cliente no agote sus recursos esperando a que a los servicios que llama si tardan en
responder y a su vez el cliente actuando de servidor recibe muchas llamadas de sus
clientes.
Servidor de Autorización
Asignamos el orden para el filtro del servidor de recursos a 3. Según la release de Spring-
Boot-1.5 se cambió de 3 a SecurityProperties.ACCESS_OVERRIDE_ORDER - 1 en esta
versión. Es necesario cambiarlo a 3 ya que al acceder a las apis del servidor a través del
token de acceso es necesario que este filtro salte antes que el filtro de seguridad por
defecto. Es necesario cambiarlo a 3 ya que al acceder a las apis del servidor a través del
token de acceso es necesario que este filtro salte antes que el filtro de seguridad por
defecto.
Ilustración 11 Cambio de filtro a 3
El id del cliente
La URL de redirección
Ilustración 14 Pantalla de aprobación en donde el usuario concede permisos al cliente my-trusted-client para
acceder a sus recursos.
Ilustración 15 URL de redirección asociada a nuestro cliente pasando el parámetro code.
Conclusión
La practica con microservicios ayuda mucho al desarrollo de aplicaciones y se construyen
con pequeños servicios con lo que se comunican con mecanismos ligeros que proveen
ayuda al desarrollador. Las implementaciones que se tratan en este documento ayudan
mucho ya que trabajan con el lenguaje de java, JSON y otros mas y esto abre a la idea en
que estos lenguajes marcan una idea a la hora del desarrollo de aplicaciones o de
demostrar un balanceo en nuestras redes o tener seguridad en nuestro trabajo, sino que
abre a la idea del programador a innovarse a la medida de crear nuevos programas,
aplicaciones y mantener mas seguro el trabajo que desarrollamos.
Con el servicio Swagger se tiene ventajas de trabajar con nuestras APIs ya que tiene reglas
que nos lleva a desarrollarlas de manera amplia, segura y cuenta con diversas
herramientas que nos ayuda a conocer más del trabajo que estamos realizando en nuestra
aplicación.
Preguntas
¿Cuál es el funcionamiento de Ribbon?
Glosario
YAML: Es un formato de serialización de datos legible por humanos inspirado en
lenguajes como XML, C, Python, Perl, así como el formato para correos electrónicos
especificado en RFC 2822 (publicaciones RFC).
OPENAPI: Es una especificación para archivos de interfaz legibles por máquina para
describir, producir, consumir y visualizar servicios web RESTful.
Referencias
Chakray. (27 de Enero de 2017). SWAGGER Y SWAGGER UI: ¿QUÉ ES Y POR QUÉ ES
IMPRESCINDIBLE PARA TUS APIS? Obtenido de Chakray:
https://www.chakray.com/es/swagger-y-swagger-ui-por-que-es-imprescindible-para-
tus-apis/
Fernandez, Luis. (24 de Diciembre de 2018). Cómo documentar nuestras APIs con Swagger.
Obtenido de Medium: https://medium.com/@lfernapalacio/c%C3%B3mo-
documentar-nuestras-apis-con-swagger-1eca6d5524a8
Jorge Hernandez Ramirez. (17 de Abril de 2017). Spring Boot – OAuth Server. Obtenido de
jorgehernandezramirez:
https://www.jorgehernandezramirez.com/2017/04/17/spring-boot-oauth-server/