File tree Expand file tree Collapse file tree
java/com/evolvedbinary/bblValidator Expand file tree Collapse file tree Original file line number Diff line number Diff line change 5353 <version >${micronaut.validation.version} </version >
5454 </dependency >
5555
56+ <!-- Micronaut Serde API - Required for @Serdeable annotation -->
57+ <dependency >
58+ <groupId >io.micronaut.serde</groupId >
59+ <artifactId >micronaut-serde-api</artifactId >
60+ <version >2.16.2</version >
61+ </dependency >
62+
5663 <!-- https://mvnrepository.com/artifact/io.micronaut.serde/micronaut-serde-jackson -->
5764 <dependency >
5865 <groupId >io.micronaut.serde</groupId >
6168 <scope >runtime</scope >
6269 </dependency >
6370
71+ <!-- Integration between Micronaut and Reactor for request middleware -->
72+ <dependency >
73+ <groupId >io.micronaut.reactor</groupId >
74+ <artifactId >micronaut-reactor</artifactId >
75+ <version >3.9.1</version >
76+ </dependency >
77+
6478 <!-- Logback for logging -->
6579 <dependency >
6680 <groupId >ch.qos.logback</groupId >
6781 <artifactId >logback-classic</artifactId >
6882 <version >1.5.21</version >
6983 <scope >runtime</scope >
7084 </dependency >
85+
86+ <!-- SnakeYAML for YAML configuration support -->
87+ <dependency >
88+ <groupId >org.yaml</groupId >
89+ <artifactId >snakeyaml</artifactId >
90+ <version >2.0</version >
91+ <scope >runtime</scope >
92+ </dependency >
7193 </dependencies >
7294
7395 <build >
Original file line number Diff line number Diff line change 1+ package com .evolvedbinary .bblValidator .controller ;
2+
3+ import com .evolvedbinary .bblValidator .dto .ApiVersion ;
4+ import io .micronaut .context .annotation .Value ;
5+ import io .micronaut .http .MediaType ;
6+ import io .micronaut .http .annotation .Controller ;
7+ import io .micronaut .http .annotation .Get ;
8+ import io .micronaut .http .annotation .Produces ;
9+
10+ @ Controller
11+ public class VersionController {
12+
13+ private final String version ;
14+
15+ public VersionController (@ Value ("${api.version}" ) String version ) {
16+ this .version = version ;
17+ }
18+
19+ @ Get ("/version" )
20+ @ Produces (MediaType .APPLICATION_JSON )
21+ public ApiVersion getVersion () {
22+ return new ApiVersion (version );
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ package com .evolvedbinary .bblValidator .dto ;
2+
3+ import io .micronaut .serde .annotation .Serdeable ;
4+
5+ @ Serdeable
6+ public class ApiVersion {
7+
8+ private String version ;
9+
10+ public ApiVersion () {
11+ }
12+
13+ public ApiVersion (String version ) {
14+ this .version = version ;
15+ }
16+
17+ public String getVersion () {
18+ return version ;
19+ }
20+
21+ public void setVersion (String version ) {
22+ this .version = version ;
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ package com .evolvedbinary .bblValidator .filter ;
2+
3+ import io .micronaut .context .annotation .Value ;
4+ import io .micronaut .http .HttpRequest ;
5+ import io .micronaut .http .MutableHttpResponse ;
6+ import io .micronaut .http .annotation .Filter ;
7+ import io .micronaut .http .filter .HttpServerFilter ;
8+ import io .micronaut .http .filter .ServerFilterChain ;
9+ import org .reactivestreams .Publisher ;
10+ import reactor .core .publisher .Flux ;
11+
12+ @ Filter ("/**" )
13+ public class ApiVersionFilter implements HttpServerFilter {
14+
15+ @ Value ("${api.version}" )
16+ private String version ;
17+
18+ @ Override
19+ public Publisher <MutableHttpResponse <?>> doFilter (HttpRequest <?> request , ServerFilterChain chain ) {
20+ return Flux .from (chain .proceed (request ))
21+ .doOnNext (response -> response .header ("X-BBLVALIDATOR-VERSION" , version ));
22+ }
23+ }
Original file line number Diff line number Diff line change 11micronaut :
22 application :
3- name : micronaut-mvp
3+ name : bbl-validator
44 server :
5- port : 8080
5+ port : 8080
6+ api :
7+ version : 1.0.0
You can’t perform that action at this time.
0 commit comments