El message-id es un identificador único de mensajería que permite hacer que cada solicitud a un API sea única e identificable, pero esto solo es la definición del campo/parámetro.
Para asignarle un valor se complementa con otro término, el UUID (Universal Unique Identifier, Identificador Único Universal), este campo sigue un patrón de expresión regular, el cuál es:
^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
En resumen, el message-id es el nombre del campo (cabecera) y el UUID es la forma que se le asigna valor al campo.
Ahora dividamos y expliquemos el patrón.
-
^[0-9a-f]{8}
: Esto representa 8 caracteres hexadecimales al principio. -
-[0-9a-f]{4}
: Aquí tenemos un guion seguido de 4 caracteres hexadecimales. -4[0-9a-f]{3}: Aquí tenemos otro guion, el número 4 seguido de 3 caracteres hexadecimales.
-
-[89ab][0-9a-f]{3}
: Otro guion, luego un dígito que puede ser 8, 9, a o b, y otros 3 caracteres hexadecimales. -
-[0-9a-f]{12}$
: El último guion y 12 caracteres hexadecimales al final del UUID.
Algunos ejemplos serían:
12345678-1234-4123-9abc-0123456789ab
abcdef01-2345-4567-89ab-cdef01234567
98765432-4321-4321-9abc-987654321abc
Algunas páginas que podrían ser de utilidad serían Online UUID Generator Tool y RegExr: Learn, Build, & Test RegEx
Hay que tener en cuenta que en ambiente productivo este valor siempre debe ser único.
¿En qué se diferencia el message-id de una referencia?
Las referencia es propia la transacción (cómo en Botón Bancolombia o Remesas), y es la misma en todo el proceso, sin importar si la transacción se usa en 2-3-4-5 o X cantidad de APIs siempre será la misma.
Mientras que el message-id si será diferente, inclusive en cada uno de esos llamados, la referencia será la misma en cada API, pero el message-id si será distinto y único.
¿Puedo utilizar el mismo message-id para pruebas?
Para el ambiente de pruebas si se podría, ya que por lo general los datos son genéricos o directamente están fijos y no se cambian.
¿Qué pasa si no envío este campo?
Las APIs te responderán un error 400, haciendo referencia a que faltan datos en la solicitud.
¿Qué pasa si envío un valor distinto o que no siga el patrón de la expresión regular?
Las APIs te responderán un error 400, haciendo referencia a que el valor envía no es adecuado.
¿Qué pasa si envío el mismo valor en producción?
Por probabilidad sería complicado que si generas el valor por código te genere dos veces el mismo valor, pero si deliberadamente lo incluyes repetidamente es posible que las APIs te responda con error, o que sea complejo identificarlas de forma individual para validar posibles fallos.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.