Convalida la chiave di entità da un altro microservizio proveniente dall'interfaccia utente

0

Diciamo che un servizio Ordini conosce solo l' CustomerId di Servizio clienti .

Quando l'utente effettua un ordine, CustomerId viene trasferito dall'interfaccia utente composita insieme a OredrDto .

La domanda è:

In un ambiente di microservizi basato su eventi, in che modo Ordina il servizio assicurati che CustomerId sia valido ed esistente prima di effettuare l'ordine?

    
posta Mohsen 18.07.2018 - 17:31
fonte

1 risposta

1

Bene, hai un paio di scelte.

In primo luogo, potresti richiedere un'interrogazione proattiva al servizio clienti come parte della sua logica di convalida dei dati ( stai convalidando tutti i tuoi input, giusto?).

In secondo luogo, potresti semplicemente convalidare che è il tipo di dati appropriato (ad es. Guid) e poi passarlo a qualsiasi passo successivo. Ad un certo punto, un servizio che hai avrà il compito di soddisfare effettivamente l'ordine e fallirà cercando di cercare l'indirizzo di spedizione del cliente o dati simili e sollevare un OrderFulfillmentError o simile, che potresti pubblicare lungo il tuo canale degli eventi di errore ( se stai facendo cose veramente basate sugli eventi).

Il primo è probabilmente più facile da eseguire il debug, ma potrebbe risultare in falsi negativi a seconda del momento in cui vengono eseguite le operazioni e del resto dell'architettura. Probabilmente quest'ultimo deve essere installato indipendentemente da eventuali altri errori upstream. In pratica, probabilmente farei entrambe le cose.

    
risposta data 18.07.2018 - 18:40
fonte

Leggi altre domande sui tag