Заказной перехватчик Helidon

Я использую helidon SE 1.4.4, как можно добавить перехватчик для всех ответов. Мой маршрут:

return Routing.builder()
            .register(JsonSupport.create())
            .register("/api/files", health)           // Health at "/health"
            .register("/api/files", metrics)          // Metrics at "/metrics"
            .register("/api/files/storage", fileService)
            .register("/api/files", OpenAPISupport.create(config))
            .build();

Я хочу использовать перехватчик для добавления специальных заголовков во все мои ответы.

2 ответа

Таким образом, мы можем добавить заголовки ко всем нашим ответам,

      return Routing.builder().any((req, res) -> {

            res.addHeader("header1", "header1");
            res.addHeader("header2", "header2");
            req.next();
        })

                ...........
                ...........
                .register("/api/files", metrics) // Metrics at "/metrics"
                .register("/api/files/storage", fileService)
                .register("/api/files", OpenAPISupport.create(config))
                .build();

Заголовки ответа

      HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 9 May 2022 21:35:40 +0530
header1: header1
header2: header2
connection: keep-alive
content-length: 46

Может быть, один из any методы на Routing.Builder может сработать для вас.

https://helidon.io/docs/latest/apidocs/io/helidon/webserver/Routing.Builder.html

Вы бы добавили то, что Helidon называет Handler в отличие от того, что вы назвали перехватчиком, но из того, что вы описали, это звучит как то поведение, которое вы хотите.

Надеюсь, что это сработает.

Другие вопросы по тегам