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}