Annotation Interface HeaderParam


@Documented @Retention(SOURCE) @Target(PARAMETER) public @interface HeaderParam

Binds the value of a HTTP header to a web route method parameter whose name indicates the name of the header.

The annotated parameter can be of any type as long as it can be decoded by the parameter converter injected in the web server module.

A header parameter can be defined as optional when the method parameter is an Optional, it is otherwise considered as required and a MissingRequiredParameterException will be thrown if the route is invoked with the parameter missing.

If the request contains multiple headers with the same name, the first one is bound unless the method parameter is an array, a Collection, a List or a Set in which case all values are bound. The parameter converter may also split raw values around a value separator (eg. value 1,2,3,4 can be bound to a list of integers).


 @WebRoute( ... )
 public void handler(@HeaderParam int requiredHeader) {
     ...
 }

 @WebRoute( ... )
 public void handler(@HeaderParam Optional<Integer> optionalHeader) {
     ...
 }

 @WebRoute( ... )
 public void handler(@HeaderParam List<Integer> multiValueHeader) {
     ...
 }
 
Since:
1.0
Author:
Jeremy Kuhn
See Also: