Annotation Interface HeaderParam


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

Binds the value of an 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 a parameter converter.

When specifying a Web server route, 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 a request is received containing 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. A 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( ... )
 void handler(@HeaderParam int requiredHeader)

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

 @WebRoute( ... )
 void handler(@HeaderParam List<Integer> multiValueHeader)
 
Since:
1.0
Author:
Jeremy Kuhn
See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    The header parameter name.
  • Element Details

    • name

      String name

      The header parameter name.

      This allows to override the name which is otherwise the Web route method parameter name, typically when the actual parameter name is not a valid Java identifier.

      Returns:
      a parameter name
      Default:
      ""