Package io.micronaut.http.annotation
Annotation Interface Header
@Documented
@Retention(RUNTIME)
@Target({FIELD,PARAMETER,TYPE,METHOD,ANNOTATION_TYPE})
@Repeatable(Headers.class)
@Bindable
@Inherited
public @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
- Author:
- Graeme Rocher, rvanderwerf
-
Optional Element Summary
-
Element Details
-
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
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
- Returns:
- The default value
- See Also:
- Default:
- ""
-