Заказной перехватчик 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
в отличие от того, что вы назвали перехватчиком, но из того, что вы описали, это звучит как то поведение, которое вы хотите.
Надеюсь, что это сработает.