Versionamiento Microservicios API
Enviado por pablo albujar • 26 de Noviembre de 2020 • Informe • 1.212 Palabras (5 Páginas) • 79 Visitas
POLITICAS Y ESTRATEGIA DE VERSIONAMIENTO:
Es importante tener en cuenta cuando se desarrolla un servicio basado en API REST, que el tratamiento a realizar para el versionado debe ser igual a cualquier otro tipo de aplicaciones web, ya que se debe tener claro que en algún momento va a tener que cambiar.
Esto quiere decir que si la API (Contrato de Servicio) es pública o es consumida por una gran cantidad de Service Consumers, es seguro que muchos de dichos Service Consumers estén obsoletos o no tengan al día las actualizaciones que se han ido aplicando en los servicios.
- OBJETIVO:
Es minimizar el impacto a nivel de cambios en el Contrato de Servicios (API), esto por medio del versionado de servicios es una práctica por la cual, al producirse un cambio en un Contrato de Servicio (API), es necesaria la liberación de una nueva versión del servicio de manera que la versión nueva & la anterior ‘convivan’ durante un periodo de tiempo.
DETALLE | IMAGEN |
En la imagen se aprecia diferentes servicios & aplicaciones basadas en diferentes lenguajes, que consumen un Contrato de Servicio v1.0, y que maneja una lógica interna v5.0 | [pic 1] |
[pic 2]
[pic 3]
[pic 4]
[pic 5]
[pic 6]
- POLITICAS:
Para la el manejo del versionamiento a nivel del formato (como deberá será mostrado), se requiere manejar el siguiente lineamiento:
REGLA | EJEMPLO | ||||
El formato más común para el manejo del versionamiento es el manejar es un decimal, seguido de un punto y luego otro decimal, como se muestra aquí: | Para se "2.0" | el | caso de la formatearía | versión | 2, así: |
Escenarios de Incremento:
|
|
[pic 7][pic 8]
- SERVICIO (REST):
Las opciones propuestas a nivel de los Web Service basados en REST, para manejar el versionamiento son los siguientes:[pic 9]
OPCIÓN | NOMENCLATURA | DETALLE |
1. Añadir la versión del Contrato de Servicio (API) en la URL base del Servicio. IMPORTANTE: La primera versión con la que nace el Contrato de Servicio (con el que es lanzado), NO se le debe agregar ningún número de versión. | http://host:puerto/v2/recurso | Esta es la opción más aconsejada & manejable, ya que a los Service Consumers que quisieran estar actualizados se les facilitaría, solo modificando los endpoint en sus llamadas al servicio. |
2. Añadir un parámetro en la cabecera de la petición, que indique la versión del API que queremos consumir. | URL: http://host:puerto//recurso Method: GET Headers: api-version: v2 | Esta es la opción hace que los Service Consumers tengan las llamadas centralizadas en un único punto, implicando que tengan que añadir un header adicional indicando la versión del Servicio. |
...