Skip to content

Unified head interception #102

@vietj

Description

@vietj

The new interceptors for changing request/response head each do a separate change yet they only modify the request/response head.

We should instead have a single interceptor that can implement all of them a batch the modification of the head in a single interceptor.

The builder pattern can be used to build such interceptor with the desired modification of the developer

Here is a builder with the current interception methods present on the HeadersInterceptor/PathInterceptor/QueryInterceptor.

@VertxGen
public interface HeadInterceptorBuilder {

  HeadInterceptor build();

  @Fluent
  HeadInterceptorBuilder changingQueryParams(Handler<MultiMap> changeQueries);

  @Fluent
  HeadInterceptorBuilder settingQueryParam(String name, String value);

  @Fluent
  HeadInterceptorBuilder removingQueryParam(String name);

  @Fluent
  HeadInterceptorBuilder changingPath(Function<String, String> pattern);

  @Fluent
  HeadInterceptorBuilder addingPrefix(String prefix);

  @Fluent
  HeadInterceptorBuilder removingPrefix(String prefix);

  @Fluent
  HeadInterceptorBuilder changingHeaders(Handler<MultiMap> requestHeaders, Handler<MultiMap> responseHeaders);

  @Fluent
  HeadInterceptorBuilder filteringRequestHeaders(Set<CharSequence> allowedRequestHeaders);

  @Fluent
  HeadInterceptorBuilder filteringResponseHeaders(Set<CharSequence> allowedResponseHeaders);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions