W zależności od architektury można użyć naprawdę fajnego oprogramowania, takiego jak Weave with CoreOS (https://github.com/weaveworks/weave). Używamy Dockera do dystrybucji naszych aplikacji na węzły CoreOS, a następnie wewnętrzny DNS jest obsługiwany przez Weave.
To jest naprawdę świetne, ponieważ możemy po prostu przekazać żądanie do nazwy aplikacji z portem, a następnie jesteśmy wyłączeni.
Na przykład, użytkownik zażąda application.com/api/apiName/request/path
Nasza brama został zrealizowany przy węźle.js i przeniesienie apiName after/api do tego api, a następnie następująca ścieżka adresu URL do dołączenia do samego wywołania.
Żądanie z bramy będzie wewnętrznie proxy, tak jak apiName: 8080/request/path. W tym względzie interfejs API nie wymaga żadnych zmian w przypadku pojawienia się nowych usług, ponieważ ścieżka jest tworzona dynamicznie z żądania.
To jest świetne, ponieważ nie musimy się martwić o śledzenie ścieżek z różnych API i przechowywanie ich gdzieś.
Jeśli nie, musisz zachować pewną (prawdopodobnie zewnętrzną) listę punktów końcowych, aby ułatwić sobie pracę. Można to zrobić programowo z samych API.
Nie jestem pewien, jakie są Twoje wymagania, a ponieważ Will udzielił odpowiedzi, wiąże się to z dużym kosztem infrastruktury. Jednak nasze wersje są szybkie i bezbolesne, ponieważ nie musimy się martwić o wprowadzanie zmian w kodzie w wielu warstwach, a nowe interfejsy API pobierają za darmo nasze proxy, logowanie i uwierzytelnianie bramy.
Bramka API działa jak bezpieczne proxy + logowanie. Możesz przekazać URL do swojej usługi "produkt", do której chcesz uzyskać dostęp, a brama będzie go proxy. – sed