Integración
Esta guía te mostrará cómo integrarte con el servicio de eventos para comenzar a recibir eventos. El servicio de eventos actualmente solo soporta Apache Kafka como el intermediario de mensajes backend.
Se asume que estás familiarizado con Kafka y no se cubrirá cómo configurar un clúster de Kafka.
Requisitos
Anchor Platform enviará eventos al tema de Kafka TRANSACTION. El servicio de eventos consumirá eventos de este tema y los enviará a los endpoints apropiados.
Configuración
Primero, el productor Kafka del servicio de eventos debe configurarse usando la sección event.queue del archivo de configuración o estableciendo las variables de entorno. A continuación se muestra el conjunto de variables de entorno requeridas para configurar el productor Kafka del servicio de eventos:
- bash
- YAML
# dev.env
EVENTS_ENABLED=true
EVENTS_QUEUE_TYPE=kafka
EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092
# dev.services.yaml
events:
enabled: true
queue:
type: kafka
kafka:
bootstrap_server: localhost:9092
Anchor Platform permite configurar un subconjunto de la configuración del cliente del productor Kafka. Consulta el archivo de valores por defecto para más información sobre lo que está disponible. Para más información sobre la configuración del cliente del productor Kafka, visita la documentación de Kafka.
Luego, el procesador de eventos debe configurarse en la sección event_processor del archivo de configuración de Anchor Platform o estableciendo las variables de entorno.
- bash
- YAML
# dev.env
EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true
EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true
# dev.services.yaml
event_processor:
client_status_callback:
enabled: true
callback_api_request:
enabled: true
Esto habilitará que el procesador de eventos comience a procesar eventos del tema TRANSACTION. En este ejemplo, el procesador de eventos enviará eventos a endpoints de callback de cliente y servidor de negocios.
Recibir Eventos
El servicio de eventos puede usarse para enviar eventos a endpoints de callback de cliente y servidor de negocios. El servicio de eventos enviará eventos a estos endpoints como solicitudes HTTP POST con los datos del evento en el cuerpo de la solicitud.
Como aplicación cliente
Las aplicaciones cliente pueden recibir actualizaciones sobre las transacciones de sus usuarios e información del cliente. El esquema de los datos del evento dependerá del tipo de evento que se envíe.
Para recibir eventos como aplicación cliente, necesitarás exponer URLs de callback a las que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este endpoint con los datos del evento en el cuerpo de la solicitud. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Anchor Platform permite configurar endpoints únicos según el tipo de evento.
Anchor Platform solo enviará eventos a clientes listados en la configuración de clientes. Consulta la documentación de configuración de clientes para más información.
Firma de Callback
Anchor Platform firma las solicitudes de callback que envía a las aplicaciones cliente. La firma se incluye en la cabecera Signature de la solicitud. La especificación de la firma de la URL de callback se puede encontrar en las especificaciones del protocolo SEP correspondientes.
Como servidor de negocios
Además de las actualizaciones de estado de transacciones SEP, los servidores de negocios pueden recibir eventos sobre la creación de cotizaciones SEP-31 o actualizaciones de información de clientes SEP-12. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Visita la documentación de la API de eventos para más información sobre el esquema de los datos del evento.
Para recibir eventos como servidor de negocios, necesitarás exponer una URL de callback a la que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este endpoint con los datos del evento en el cuerpo de la solicitud.
Configuración
La API de callback del servicio de eventos puede configurarse usando la sección callback_api del archivo de configuración de Anchor Platform o estableciendo las variables de entorno.
El siguiente es un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación JWT:
- bash
- YAML
# dev.env
# note `/callback` will not be used for event callbacks
# instead events will be sent to `http://localhost:8081/event`
# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path
CALLBACK_API_BASE_URL=http://localhost:8081/callback
CALLBACK_API_AUTH_TYPE=jwt
CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000
CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization
SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts"
# dev.services.yaml
callback_api:
base_url: http://localhost:8081/callback
auth:
type: jwt
jwt:
expiration_milliseconds: 30000
http_header: Authorization
El siguiente es un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación por clave API:
- bash
- YAML
# dev.env
CALLBACK_API_BASE_URL=http://localhost:8081/callback
CALLBACK_API_AUTH_TYPE=api_key
CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key
SECRET_CALLBACK_API_AUTH_SECRET="your API key"
# dev.services.yaml
callback_api:
base_url: http://localhost:8081/callback
auth:
type: api_key
api_key:
http_header: X-Api-Key
Esto configura la API de callback del servicio de eventos que se usará para enviar eventos a endpoints de callback de clientes y servidores de negocios. Las siguientes son las opciones de configuración soportadas:
base_url: La URL base del endpoint de callback del servidor de negocios.secret: El secreto que se usará al enviar eventos al endpoint de callback del servidor de negocios. Se usa para firmar el cuerpo de la solicitud cuando la autenticación JWT está activada y es la clave API cuando la autenticación por clave API está habilitada.auth: El método de autenticación que se usará al enviar eventos al endpoint de callback del servidor de negocios. Los siguientes métodos de autenticación son soportados:JWT: El servicio de eventos enviará un JSON Web Token (JWT) en la cabeceraAuthorizationde la solicitud. Las siguientes son las opciones de configuración soportadas:expiration_milliseconds: El tiempo de expiración del JWT en milisegundos.http_header: La cabecera en la cual se enviará el JWT.
API_KEY: El servicio de eventos enviará una clave API en la cabeceraAuthorizationde la solicitud. Las siguientes son las opciones de configuración soportadas:http_header: La cabecera en la cual se enviará la clave API.