Buona architettura per il passaggio di dati a più API

0
  • Ho uno scenario ipotetico in cui devo passare i dati alle API da più provider diversi, a seconda dell'identità del fornitore fornita da una delle porzioni di dati.
  • Se ho i dati come oggetti all'interno di un oggetto genitore enumerabile, quale sarebbe un buon modo per passare gli oggetti all'API appropriata in un modo abbastanza allentato?
  • Anche se la definizione dell'API fosse in qualche modo più strettamente codificata, quale sarebbe un buon modo per passare effettivamente gli oggetti all'API?
  • Sto scrivendo la soluzione in C # anche se è l'architettura generale che non interessa l'implementazione specifica
posta Johnny 26.06.2014 - 11:54
fonte

2 risposte

2

Penso che sarebbe d'aiuto se chiarissi in che misura le API ci sono. per esempio. Potresti utilizzare 2 servizi di localizzazione in cui uno prende coordinate lat / long e gli altri coassiali XY; o sono più diversi come un servizio di localizzazione e un servizio di ordinazione della pizza?

In ogni caso, la soluzione migliore è un messaggio che passa l'architettura. Hai un broker o bus di messaggi a cui il tuo codice principale invia messaggi, e il broker decide su quale API passare il messaggio. Spesso avrai una facciata (o un gateway) che si trova tra il broker e le API se c'è un bel po 'di traduzione richiesta dai dati del programma che vengono inviati al broker e che cosa l'API si aspetta di ricevere.

Uno dei vantaggi di un broker di messaggi come questo è che puoi aggiungere nuove API in modo dinamico, una volta che si registrano per ricevere messaggi, inizieranno a riceverli all'improvviso, non sono richieste modifiche al codice nel programma client, supponendo che tu possa inviare il nuovo rilevante i dati.

    
risposta data 26.06.2014 - 16:37
fonte
1

Sembra una buona opportunità per le code di messaggi.

Le code sono utili per riprovare errori e per mantenere le cose unite liberamente. Ad esempio, i dati che stai passando potrebbero essere inseriti in una coda in arrivo. Alcuni processi lo catturerebbero e decidere quali API dovrebbero riceverlo, scrivendolo su diverse code in uscita. Le code in uscita durante l'elaborazione trasmettono i dati al destinatario appropriato. Questo modellizza il flusso di lavoro umano dei lavoratori che hanno nei cassonetti e nei cassonetti della loro scrivania e dei corrieri che portano i documenti in uscita al posto giusto.

    
risposta data 26.06.2014 - 18:50
fonte

Leggi altre domande sui tag