A seconda dell'architettura, è possibile utilizzare alcuni software davvero interessanti come Weave with CoreOS (https://github.com/weaveworks/weave). Stiamo utilizzando Docker per distribuire le nostre applicazioni sui nodi CoreOS, quindi il DNS interno viene gestito da Weave.
Questo è davvero ottimo perché possiamo semplicemente inoltrare la richiesta al nome dell'applicazione con una porta, e quindi siamo fuori e fuori.
Ad esempio, un utente richiede application.com/api/apiName/request/path~~V~~3rd
La nostra porta è stata implementata con nodo.js, e prende l'apiName after/api per instradarlo su quell'api, e quindi il seguente percorso dell'URL da aggiungere alla chiamata stessa.
Quindi la richiesta dal gateway verrebbe inoltrata internamente come apiName: 8080/request/path. A tale riguardo, l'API non richiede modifiche quando vengono visualizzati nuovi servizi, poiché il percorso viene creato dinamicamente dalla richiesta.
Questo è ottimo perché non dobbiamo preoccuparci di tracciare i percorsi dalle diverse API e di memorizzarli da qualche parte.
In caso contrario, è necessario mantenere un elenco (probabilmente esterno) di endpoint per renderlo più semplice. Questo potrebbe essere fatto a livello di codice dalle stesse API.
Non sono sicuro quali siano le vostre esigenze, tuttavia, e come Will ha risposto, comporta costi infrastrutturali piuttosto grandi. Tuttavia, i nostri rilasci sono rapidi e indolori perché non dobbiamo preoccuparci di apportare modifiche al codice in più livelli e le nuove API ottengono il nostro proxy proxy, registrazione e autenticazione gratuitamente.
Il gateway API funziona come un proxy sicuro + registrazione. Puoi passare l'url al tuo servizio 'prodotto' a cui vuoi accedere e il gateway lo indicherà. – sed