2.1-Naming-APIs
Generalidades
Las URLs deben estar en inglés
Las URLs de las APIs tienen 2 grandes partes:
-
La parte inicial de la URL de una API corresponde al micro-servicio. Esto debe ser único a nivel plataforma y esta asociado directamente al balanceador de carga o API gateway para enrutar el tráfico. Antes de comenzar un nuevo microservicio se debe validar a nivel balanceador que la primera parte de la URL sea conveniente. Por otra parte en un microservicio debemos respetar ese "preambulo" para todas las APIs. En algunos casos puede suceder que un microservicio tenga asociados varios de esos "preambulos"
-
La parte final de la URL es la que define la api en cuestion, en este caso el developer tiene libertad para poner los nombres. Tener en cuenta seguir una taxonomía lógica y seguir los lineamientos REST
Ejemplo:
<dominio.com>/api/fields/field/boundary
En este caso "/api/fields" es loque define el microservicio. El balanceador de carga va a definir el contenedor al cual enviar el tráfico en base a ese preambulo
Por otra parte "/field/boundary" es un endpoint específico que por el nombre evidentemente devuelve el boundary de un field.
Versioning
El versionado simplemente será implementado agregando un "/v2", "/v3" ... "vN" en la url de la API, pero en la sección final, nunca en la parte del "preambulo" que es la que corresponde al microservicio y al balanceador de carga.
Ejemplo:
Api original: <dominio.com>/api/fields/field/boundary
Versionado de todo el servicio: <dominio.com>/api/fields/v2/field/boundary
Versionado del conjunto de apis field y sus descendientes unicamente: <dominio.com>/api/fields/field/v2/boundary
Versionado de la api boundary unicamente: <dominio.com>/api/fields/field/boundary/v2