/** * Auto-generated from apibuilder.io service specification. * apidoc-version : {{service.apidoc.version}} * organisation : {{service.organization.key}} * service-version : {{service.version}} * * Documentation at: * https://app.apibuilder.io/{{service.organization.key}}/{{service.name}}/{{service.version}} * **/ package {{namespace}}.client; import lombok.*; import org.glassfish.jersey.client.HttpUrlConnectorProvider; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.client.ClientRequestContext; import java.io.IOException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @Builder(toBuilder = true) @With @Getter @EqualsAndHashCode public class {{configName}} implements ClientRequestFilter { @NonNull private final String baseUrl; {{#headers}}/** {{#description}}{{.}} {{/description}} **/{{#required}} @NonNull{{/required}} private {{{type.name}}} {{label}}; {{/headers}} public Client getClient() { ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JavaTimeModule()); return ClientBuilder.newClient() .register(mapper) .register(this) .property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true); } @Override public void filter(ClientRequestContext requestContext) throws IOException { {{#headers}} requestContext.getHeaders().add("{{name}}", this.{{label}}); {{/headers}} } }