Helidon custom interceptor

Viewed 211

I use helidon SE 1.4.4, how can add intercepor for all response. My route is:

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();

I want use interceptor for add special headers in all my response.

2 Answers

This way we can add headers to all our response,

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();

Response Headers

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
Related