Вставить глобальный заголовок ответа перед отправкой ответа клиенту - PullRequest
0 голосов
/ 03 ноября 2019

Я новичок в Spring Cloud Gateway и пытаюсь настроить свое управление API.

Я использую Global Filter для регистрации входящего URI, а также URI маршрутизации -

@Component
public class RequestLoggingFilter implements GlobalFilter {
    Log log = LogFactory.getLog(getClass());

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        String originalUri = exchange.getRequest().getURI().toString();
        Route route = exchange.getAttribute(GATEWAY_ROUTE_ATTR);
        URI routeUri = exchange.getAttribute(GATEWAY_REQUEST_URL_ATTR);
        log.info("Incoming request " + originalUri + " is routed to id: " + route.getId()
                + ", uri:" + routeUri+" with id:"+ exchange.getRequest().getId());
        return chain.filter(exchange);
    }

Я вижу этот exchange.getRequest (). GetId (), который кажется уникальным для каждого запроса.

Я хочу добавить этот идентификатор в качестве заголовка ответа ко всем ответам перед отправкой моего запроса, но неконечно, как добавить это как часть глобального фильтра

Пожалуйста, предложите

1 Ответ

0 голосов
/ 05 ноября 2019

Это было бы так же просто, как добавить -

        String id = exchange.getRequest().getId();
        exchange.getResponse().getHeaders().add("id",id);
...