Des événements de domaine aux webhooks

DEV - 28/12
Comment nous traduisons les événements de domaine internes en webhooks HTTP pour les intégrations externes dans notre système ERP

Je travaille sur un système ERP qui s'intègre à divers systèmes externes tels que les systèmes de gestion d'entrepôt, les logiciels de comptabilité, les ponts-bascules, etc. Lorsque quelque chose change dans notre système, comme la création d'une commande ou l'expédition d'une expédition, plusieurs systèmes externes doivent en être informés.

Nous utilisons les événements de domaine en interne et les traduisons en webhooks HTTP pour les consommateurs externes.

Voici comment nous procédons (je l'ai simplifié pour cet article).

Événements de domaine

Les événements de domaine implémentent cette interface :

interface DomainEvent { fonction publique AggregateRootId() : string ; fonction publique displayReference() : chaîne ; fonction publique occurrenceAt() : \DateTimeImmutable ; fonction statique publique eventType() : DomainEventType ; }
Entrer en mode plein écran Quitter le mode plein écran
#[TriggerWebhook] class OrderConfirmed implémente DomainEvent { public function __construct( private string $orderId, private string $orderNumber, private \DateTimeImmutable $confirmedAt, ) {} public function AggregateRootId(): string { return $this->orderId; } fonction publique displayReference() : string { return $this->orderNumber ; } fonction publique occurrenceAt() : \DateTimeImmutable { return $this->confirmedAt ; } fonction statique publique eventType() : DomainEventType { return DomainEventType::OrderConfirmed ; } }
Entrer en mode plein écran Quitter le mode plein écran

Le#[Webhook de déclenchement]L'att...
[Courte citation de 8% de l'article original]

Loading...