Da un client di applicazioni mobili a API / microservices

0

Diciamo che ho un client mobile per rispondere alle domande e quindi acquistare un widget. Ad esempio, potrei avere 10 schermate dalla mia interfaccia utente con circa 8 domande per schermo. Immagina che ci sia una schermata per il nome, i dati del cognome, 'crea informazioni personali' è in pratica chiamata operazione / servizio.

Con REST, JSON su microservizi HTTP, il pensiero è che potresti avere un servizio per quella particolare richiesta di "crea persona" e poi salveremmo in qualche database. Questa richiesta può contenere 10 proprietà per quella particolare chiamata.

Questo è un semplice esempio e caso d'uso con non molti dettagli, ma qui è la domanda generale. Diciamo che c'è un'API incorporata in questa applicazione, una per raccogliere domande su una persona. E l'altro è per fare un acquisto. Quando si lavora con client mobili nativi, il client dovrebbe parlare direttamente al microservizio che in termini può scorrere nel database in un'unica operazione sincrona? Stavo anche osservando l'approccio di un modello basato sugli eventi per i microservizi, è preferibile un approccio asincrono?

    
posta berlinbrown2 17.02.2018 - 16:59
fonte

2 risposte

2

Il mio approccio preferito è quello di fornire un singolo API per client (uno per client mobili, un altro per client Web, desktop, ecc.). Nel tuo caso (per ora comunque), sarebbe un apice per i client mobili nativi.

Si noti che ogni tipo di client potrebbe avere requisiti e capacità diversi, metodo di autenticazione, serializzazione, intestazioni, ecc. I vostri microservizi non dovrebbero preoccuparsi di queste cose, allo stesso modo in cui il vostro cliente non dovrebbe preoccuparsi del vostro sempre modifica della distribuzione dei microservizi.

È possibile ottenere ciò codificando un'API dedicata che fornisce l'interfaccia corretta per il client e chiama i microservizi richiesti oppure è possibile utilizzare un servizio gateway come Gestione API di Azure o simile, che consente di configurare il mapping tra gli endpoint esposti ai tuoi clienti per i tuoi microservizi interni.

    
risposta data 17.02.2018 - 22:31
fonte
0

Se si tratta di una sorta di telemetria, che non è essenziale per l'acquisto di quanto si dovrebbe probabilmente avere 2 microservizi (telemetria collegata all'acquisto da parte di alcuni ID e l'acquisto). Ogni microservizio ha la propria API, ma questo non significa che non si possa creare una facciata sull'Api Gateway per invocare effettivamente quei 2 microservizi per te ...

Se si tratta di alcune informazioni che DEVONO essere disponibili all'acquisto, allora IMO è un microservizio e sicuramente è una chiamata API ... (transazione?)

    
risposta data 05.03.2018 - 12:34
fonte

Leggi altre domande sui tag