Мы с тобой уже обсуждали, что приложения общаются друг с другом посредством специального интерфейса, который называется API. То есть одно приложение принимает запросы от другого на выполнение строго определенных функций: показать список товаров, добавить товар в корзинку, произвести оплату выбранного в магазине, к примеру.
Но тут встают проблемы: а если у нас есть API для редактирования товаров и их цен, это что, мы всем пользователям разрешим? Или например у нас микросервисное приложение на бекенде, откуда фронтэнд будет знать, к какому микросервису зачем обращаться, неужели надо чтобы клиент хранил все сопоставления функций к сервисам, которые их обеспечивают?
А вот и нет! Все эти и многие другие вопросы решает так называемый API Gateway. Это такая программа, которая владеет информацией какому пользователю или внешнему приложению и чего можно и какой микросервис отвечает за, допустим, регистрацию на скайте.
То есть по сути, это такие ворота со сторожем, которые впускают полезных деятелей и за ручку проводят к тому сервису, чьи функции нужны.