Annotation Interface Header


An annotation that can be applied to method argument to indicate that the method argument is bound from an HTTP header This also can be used in conjunction with @Headers to list headers on a client class that will always be applied.

The following example demonstrates usage at the type level to declare default values to pass in the request when using the Client annotation:

 @Header(name = "X-Username", value = "Freddy"),
 @Header(name = "X-MyParam", value = "${foo.bar}")
 @Client('/users')
 interface UserClient {

 }
 

When declared as a binding annotation the @Header annotation is declared on each parameter to be bound:

 @Get('/user')
 User get(@Header('X-Username') String username, @Header('X-MyParam') String myparam) {
    return new User(username, myparam);
 }
 
Since:
1.0
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
     
    If used on a class level with @Headers this is the header name and value is the value.
    If used as a bound parameter, this is the header name.
  • Element Details

    • value

      @AliasFor(annotation=io.micronaut.core.bind.annotation.Bindable.class, member="value") String value
      If used as a bound parameter, this is the header name. If used on a class level this is value and not the header name.
      Returns:
      The name of the header, otherwise it is inferred from the parameter name
      Default:
      ""
    • name

      @AliasFor(annotation=io.micronaut.core.bind.annotation.Bindable.class, member="value") String name
      If used on a class level with @Headers this is the header name and value is the value.
      Returns:
      name of header when using with @Headers
      Default:
      ""
    • defaultValue

      @AliasFor(annotation=io.micronaut.core.bind.annotation.Bindable.class, member="defaultValue") String defaultValue
      Returns:
      The default value
      See Also:
      • Bindable.defaultValue()
      Default:
      ""