На це питання можна відповісти декількома способами:
Агрегація кінцевих точок
Шлюзи API в основному агрегують інші кінцеві точки, не обов'язково їх результати. Тобто це єдиний сервер, який може відображати інші кінцеві точки з деякими додатковими функціональними можливостями, такими як аутентифікація або маршрутизація.
Сенс у тому, щоб централізувати деякі сервіси, приховати фактичні сервери від зовнішньої мережі тощо.
Агрегація результатів
Якщо ви дійсно хочете мати ділову логіку на шлюзі, підтягуючи різні документи до іншого документа або просто змінюючи запити чи відповіді, ви можете подивитися на Enterprise Service Bus .
Чи добре, чи агрегація
Це, звичайно, дискусійне, і до окремих думок. Можна стверджувати, що є причина, по якій ми віддалилися (в основному) від рішень типу SOA / ESB. Ця причина може бути через те, що окремі обов'язки не були чіткими, і вони, як правило, збираються на стороні ESB, залишаючи кінцеві точки "тупими". Врешті-решт, в результаті ESB все знає.
Підхід "REST" відрізняється. Він ґрунтується на «розумних» кінцевих точках, знаючи їхню частину та переконуючись, що жодним іншим компонентам не потрібно знати жодної деталі. Ця ідея сама по собі, здається, суперечить тому, щоб Шлюз дізнався більше про відповіді .
Дійсно, є деякі ідеї архітектури, як - от Self-Conced Systems , які ґрунтуються на ідеї, що будь-яка функція, яка потрібна вашому клієнту, повинна повністю покриватися заданою кінцевою точкою. Це НЕ потрібно синхронна зв'язок з іншими , щоб виконати запит у своїй сфері відповідальності. Це також говорить про те, що агрегування результатів може бути контрпродуктивним.
Як завжди, все залежить від точних вимог.