Я работаю над POC. Мне нужно использовать zuul в качестве сервера для маршрутизации 2-х маршрутов. Сначала маршруты будут работать нормально, но у него есть собственный пост-фильтр, который отправит другой запрос другим API, используя некоторые данные ответа первогоРекет, поэтому нужно извлечь тело ответа первого запроса в мой пользовательский пост-фильтр и получить некоторые конкретные атрибуты, но я не могу найти ответ, поскольку он всегда будет нулевым, но код состояния равен 200. Как я могу ждать и получить значениеопределенного атрибута из ответа и получить фактический код состояния не только 200 в качестве значения по умолчанию.
Я попытался сделать эту реализацию с использованием облачного шлюза, но я достиг той же точки неспособности извлекать ответ.Также я попытался создать ответный декоратор, но тоже не получилось.
@Component
public class AddResponseHeaderFilter extends ZuulFilter {
@Override
public String filterType() {
return "post";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
System.out.println("this is my filter");
RequestContext context = RequestContext.getCurrentContext();
HttpServletRequest request = new HttpServletRequestWrapper(context.getRequest());
System.out.println(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));
HttpServletResponse servletResponse = context.getResponse();
// return an address only
System.out.println(context.getResponseBody().toString());
servletResponse.addHeader("X-Foo", UUID.randomUUID().toString());
return null;
}
}