001package io.avaje.http.api;
002
003import java.lang.annotation.Retention;
004import java.lang.annotation.Target;
005
006import static java.lang.annotation.ElementType.FIELD;
007import static java.lang.annotation.ElementType.PARAMETER;
008import static java.lang.annotation.RetentionPolicy.RUNTIME;
009
010/**
011 * A parameter that is a header value.
012 * <p>
013 * We can put this on a method parameter or a <code>@Form</code> bean property.
014 * </p>
015 * <p>
016 * By default header names are Init caps snake case. For example:
017 * </p>
018 * <pre>{@code
019 *
020 *  // Last-Modified
021 *  @Header lastModified
022 *
023 * }</pre>
024 */
025@Target(value={PARAMETER,FIELD})
026@Retention(value=RUNTIME)
027public @interface Header {
028
029  /**
030   * The name of the header.
031   */
032  String value() default "";
033
034}