Не все API-шлюзы поддерживают агрегирование. Этот является примером агрегирования ответа двух сервисов на один клиентский вызов с использованием nginx.
Побочным эффектом этого является введение связи на уровне шлюза API.
Другим возможным решением является использование агрегационного микросервиса. Основная ответственность этого сервиса заключается в предоставлении клиентской API. Он может сделать несколько звонков другим микросервисам, чтобы сформулировать ответ для клиента. См. Пример ниже
@RequestMapping(path = "/product", method = RequestMethod.GET)
public Product getProduct() {
var product = new Product();
String productTitle = informationClient.getProductTitle();
Integer productInventory = inventoryClient.getProductInventories();
if (productTitle != null) {
product.setTitle(productTitle);
} else {
product.setTitle("Error: Fetching Product Title Failed"); //Fallback to error message
}
if (productInventory != null) {
product.setProductInventories(productInventory);
} else {
product.setProductInventories(-1); //Fallback to default error inventory
}
return product;
}
Полный пример здесь