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 Link icon

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

    • name Link icon

      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:
      ""