Des nouvelles ont été ajoutées en tête de listes.
Remontez pour les voir.
Inscription à la newsletter
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...
🍪
Le modèle économique de notre site repose sur l'affichage de publicités personnalisées basées sur l'utilisation de cookies publicitaires. En continuant votre visite sur notre site, vous consentez à l'utilisation de ces cookies.
Politique de confidentialité