252 messaggi dal 03 dicembre 2001
www.fuossbook.it
Ciao a tutti,
mi é stato assegnato il progetto di creare un Gateway per interfacciare delle richieste esterne alle API presenti sui nostri server per condividere informazioni presenti nel nostro database.
Le richieste potranno essere fatte da partner esterni che sviluppano utility per in nostro software inoltre siamo in procinto di realizzare una versione mobile del nostro software che anch'egli quindi richiamerà queste API..
Vi spiego un po l'architettura, il nostro software é installato su dei server dai vari clienti, quindi con db locali.
L'idea é questa:
un partner esterno deve prendere informazioni tipo contabilità di un determinato cliente, chiamiamolo XXY con id 1001.
Per fare questo abbiamo un software di Callback sul nostro server che conoscendo gli indirizzi di tutti i nostri clienti a secondo dalla richiesta tipo 1001 richiama le API presenti su un determinato server cliente.

Le API su tutti i server clienti sono quasi sempre le stesse per ora, in casi eccezionali ci sono versione differenti.
Ma con questa implementazione devo prevedere che tra l'aggiornamento di tutti i server potrebbe passare molto tempo e quindi ritrovarmi versioni differenti.

Quindi in teoria il partner esterno passa per il nostro Callback inviando la richiesta di una determinata API per esempio GetInfoCliente.

Arrivando dall'esterno queste richieste si é deciso di mettere un Gateway, che prima di tutto controlli la sicurezza, verificando l'id (1001) con le credenziali di accesso al server SSO.
Qui credo di creare un token per tutte le richieste di questo partner. ( 1) é corretto il token qui?)
Poi accedo al Callback che reindirizza la chiamata al server cliente, e qui l'API ritorna le informazioni dopo un altra verifica del SSO (già esistente).

Per ora sono tutte richieste in GET. Le richieste di Post e Put saranno realizzate molto più avanti.

Il Gateway, oltre a verificare le credenziali e a reindirizzare la richiesta al Callback dovrà creare dei log di tutti i processi.
Inoltre ci potrebbero essere delle richieste esterne ad un API che pero realmente ritornano le informazioni di più API cliente.
Esempio:
l'indirizzo della mia API é 101.101.101.101:8080/GetSaldoCliente?idS=1001&IdC=2020 (naturalmente le informazioni non sono in querystring)

GetSaldoCliente realmente richiamerà due api sul server cliente GetInfoCliente e GetSaldoCliente, le informazioni vengono unite per ritornare un unico xml

Ho letto un po di cose in rete ma vorrei chiedervi un po di suggerimenti su quello che devo fare

Penso di creare un sito web con dei controller/servizi che effettuano le operazioni di login e reindirizzamento al Callback che richiama le Api.In caso di più API al ritorno delle informazioni, queste saranno unite tra di loro restituendo quindi un determinato modello in xml.

2) Ancora non mi é ben chiaro se le domande devo farle sincrone o asincrone, quali e che vantaggi o svantaggi ho.

Devo eventualmente gestire le differenti versioni delle Api lato server cliente, per fare questo penso di fare una prima richiesta al Callback, che chiama il server cliente, che ritorna la versione delle API, e a quel punto vado nel Gateway a decidere che versione di API richiamare. 3) Giusto per voi?

Tutte le informazioni/log saranno stoccate sul DB collegato al Gataway

Tutto il lavoro del Gateway é da fare, penso di farlo con CORE, é una tecnologia che ancora non conosco per ora ma vorrei implementarlo cosi per avanzare sia io come conoscenze sia per utilizzare qualcosa di più nuovo e forse performante.

Qui trovate un piccolo schema che ho fatto di tutto

Avete suggerimenti da darmi per implementare il tutto?

Grazie in anticipo

***************************
webmaster di:
hydrasail.blogspot.it
fuossbook.it
***************************

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.