15.8.2. インターセプターを JAX-RS メソッドにバインドする
概要
登録されているすべてのインターセプターは、デフォルトですべての要求に対して呼び出されます。The AcceptedByMethod
この動作を微調整するためにインターフェイスを実装できます。
例15.7 バインディングインターセプターの例
RESTEasy は
accept()
を実装するインターセプターのメソッド AcceptedByMethod
インターフェイス。メソッドが true を返す場合、インターセプターは JAX-RS メソッドのコールチェーンに追加されます。それ以外の場合は、そのメソッドでは無視されます。
以下の例では、
accept()
@GET アノテーションが JAX-RS メソッドに存在するかどうかを判別します。そうである場合、インターセプターはメソッドの呼び出しチェーンに適用されます。
@Provider @ServerInterceptor public class MyHeaderDecorator implements MessageBodyWriterInterceptor, AcceptedByMethod { public boolean accept(Class declaring, Method method) { return method.isAnnotationPresent(GET.class); } public void write(MessageBodyWriterContext context) throws IOException, WebApplicationException { context.getHeaders().add("My-Header", "custom"); context.proceed(); } }