У меня есть следующая конфигурация маршрутизации из базы данных
@Bean
public RouteLocator routeLocator(
final PathRoutePredicateFactory predicateFactory,
final RouteConfigDao routeConfigDao) {
return () -> routeConfigDao.findAll()
.map(routeConfig -> Route.async()
.asyncPredicate(predicateFactory.applyAsync(config -> config.setPatterns(of(routeConfig.getPath()))))
.id(routeConfig.getName())
.uri(routeConfig.getUrl())
// .filter(gatewayFilterSupplier())
.build());
}
Все прокси-службы будут возвращать общий ответ json в случае сценария ошибки
{
"errorCode": "ASD-325",
"errorField": "Name"
}
В шлюзе I необходимо перехватить этот ответ об ошибке и сделать еще один вызов REST, чтобы получить сообщение об ошибке для errorCode и вернуться к клиенту.
Примечание: я использую Spring Webflux и R2DB C