Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Java][Native] Adding Response Interceptor #5500

Merged
merged 2 commits into from
Mar 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@ import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.openapitools.jackson.nullable.JsonNullableModule;

import java.io.InputStream;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.Charset;
import java.time.Duration;
import java.util.Collection;
Expand Down Expand Up @@ -46,6 +48,7 @@ public class ApiClient {
private int port;
private String basePath;
private Consumer<HttpRequest.Builder> interceptor;
private Consumer<HttpResponse<InputStream>> responseInterceptor;
private Duration readTimeout;

private static String valueToString(Object value) {
Expand Down Expand Up @@ -161,6 +164,7 @@ public class ApiClient {
basePath = baseURI.getRawPath();
interceptor = null;
readTimeout = null;
responseInterceptor = null;
}

/**
Expand Down Expand Up @@ -292,6 +296,29 @@ public class ApiClient {
return interceptor;
}

/**
* Set a custom response interceptor.
*
* <p>This is useful for logging, monitoring or extraction of header variables</p>
*
* @param interceptor A function invoked before creating each request. A value
* of null resets the interceptor to a no-op.
* @return This object.
*/
public ApiClient setResponseInterceptor(Consumer<HttpResponse<InputStream>> interceptor) {
this.responseInterceptor = interceptor;
return this;
}

/**
* Get the custom response interceptor.
*
* @return The custom interceptor that was set, or null if there isn't any.
*/
public Consumer<HttpResponse<InputStream>> getResponseInterceptor() {
return responseInterceptor;
}

/**
* Set the read timeout for the http client.
*
Expand All @@ -307,7 +334,7 @@ public class ApiClient {
this.readTimeout = readTimeout;
return this;
}

/**
* Get the read timeout that was set.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ public class {{classname}} {
private final String memberVarBaseUri;
private final Consumer<HttpRequest.Builder> memberVarInterceptor;
private final Duration memberVarReadTimeout;

private final Consumer<HttpResponse<InputStream>> memberVarResponseInterceptor;

public {{classname}}() {
this(new ApiClient());
}
Expand All @@ -47,6 +48,7 @@ public class {{classname}} {
memberVarBaseUri = apiClient.getBaseUri();
memberVarInterceptor = apiClient.getRequestInterceptor();
memberVarReadTimeout = apiClient.getReadTimeout();
memberVarResponseInterceptor = apiClient.getResponseInterceptor();
}

{{#operation}}
Expand Down Expand Up @@ -138,6 +140,9 @@ public class {{classname}} {
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"{{operationId}} call received non-success response",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.openapitools.jackson.nullable.JsonNullableModule;

import java.io.InputStream;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.Charset;
import java.time.Duration;
import java.util.Collection;
Expand Down Expand Up @@ -57,6 +59,7 @@ public class ApiClient {
private int port;
private String basePath;
private Consumer<HttpRequest.Builder> interceptor;
private Consumer<HttpResponse<InputStream>> responseInterceptor;
private Duration readTimeout;

private static String valueToString(Object value) {
Expand Down Expand Up @@ -172,6 +175,7 @@ public ApiClient() {
basePath = baseURI.getRawPath();
interceptor = null;
readTimeout = null;
responseInterceptor = null;
}

/**
Expand Down Expand Up @@ -303,6 +307,29 @@ public Consumer<HttpRequest.Builder> getRequestInterceptor() {
return interceptor;
}

/**
* Set a custom response interceptor.
*
* <p>This is useful for logging, monitoring or extraction of header variables</p>
*
* @param interceptor A function invoked before creating each request. A value
* of null resets the interceptor to a no-op.
* @return This object.
*/
public ApiClient setResponseInterceptor(Consumer<HttpResponse<InputStream>> interceptor) {
this.responseInterceptor = interceptor;
return this;
}

/**
* Get the custom response interceptor.
*
* @return The custom interceptor that was set, or null if there isn't any.
*/
public Consumer<HttpResponse<InputStream>> getResponseInterceptor() {
return responseInterceptor;
}

/**
* Set the read timeout for the http client.
*
Expand All @@ -318,7 +345,7 @@ public ApiClient setReadTimeout(Duration readTimeout) {
this.readTimeout = readTimeout;
return this;
}

/**
* Get the read timeout that was set.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ public class AnotherFakeApi {
private final String memberVarBaseUri;
private final Consumer<HttpRequest.Builder> memberVarInterceptor;
private final Duration memberVarReadTimeout;

private final Consumer<HttpResponse<InputStream>> memberVarResponseInterceptor;

public AnotherFakeApi() {
this(new ApiClient());
}
Expand All @@ -53,6 +54,7 @@ public AnotherFakeApi(ApiClient apiClient) {
memberVarBaseUri = apiClient.getBaseUri();
memberVarInterceptor = apiClient.getRequestInterceptor();
memberVarReadTimeout = apiClient.getReadTimeout();
memberVarResponseInterceptor = apiClient.getResponseInterceptor();
}

/**
Expand Down Expand Up @@ -90,6 +92,9 @@ public Client call123testSpecialTags(Client body) throws ApiException {
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"call123testSpecialTags call received non-success response",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ public class FakeApi {
private final String memberVarBaseUri;
private final Consumer<HttpRequest.Builder> memberVarInterceptor;
private final Duration memberVarReadTimeout;

private final Consumer<HttpResponse<InputStream>> memberVarResponseInterceptor;

public FakeApi() {
this(new ApiClient());
}
Expand All @@ -61,6 +62,7 @@ public FakeApi(ApiClient apiClient) {
memberVarBaseUri = apiClient.getBaseUri();
memberVarInterceptor = apiClient.getRequestInterceptor();
memberVarReadTimeout = apiClient.getReadTimeout();
memberVarResponseInterceptor = apiClient.getResponseInterceptor();
}

/**
Expand Down Expand Up @@ -97,6 +99,9 @@ public void createXmlItem(XmlItem xmlItem) throws ApiException {
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"createXmlItem call received non-success response",
Expand Down Expand Up @@ -142,6 +147,9 @@ public Boolean fakeOuterBooleanSerialize(Boolean body) throws ApiException {
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"fakeOuterBooleanSerialize call received non-success response",
Expand Down Expand Up @@ -188,6 +196,9 @@ public OuterComposite fakeOuterCompositeSerialize(OuterComposite body) throws Ap
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"fakeOuterCompositeSerialize call received non-success response",
Expand Down Expand Up @@ -234,6 +245,9 @@ public BigDecimal fakeOuterNumberSerialize(BigDecimal body) throws ApiException
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"fakeOuterNumberSerialize call received non-success response",
Expand Down Expand Up @@ -280,6 +294,9 @@ public String fakeOuterStringSerialize(String body) throws ApiException {
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"fakeOuterStringSerialize call received non-success response",
Expand Down Expand Up @@ -329,6 +346,9 @@ public void testBodyWithFileSchema(FileSchemaTestClass body) throws ApiException
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testBodyWithFileSchema call received non-success response",
Expand Down Expand Up @@ -391,6 +411,9 @@ public void testBodyWithQueryParams(String query, User body) throws ApiException
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testBodyWithQueryParams call received non-success response",
Expand Down Expand Up @@ -440,6 +463,9 @@ public Client testClientModel(Client body) throws ApiException {
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testClientModel call received non-success response",
Expand Down Expand Up @@ -512,6 +538,9 @@ public void testEndpointParameters(BigDecimal number, Double _double, String pat
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testEndpointParameters call received non-success response",
Expand Down Expand Up @@ -579,6 +608,9 @@ public void testEnumParameters(List<String> enumHeaderStringArray, String enumHe
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testEnumParameters call received non-success response",
Expand Down Expand Up @@ -656,6 +688,9 @@ public void testGroupParameters(Integer requiredStringGroup, Boolean requiredBoo
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testGroupParameters call received non-success response",
Expand Down Expand Up @@ -704,6 +739,9 @@ public void testInlineAdditionalProperties(Map<String, String> param) throws Api
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testInlineAdditionalProperties call received non-success response",
Expand Down Expand Up @@ -755,6 +793,9 @@ public void testJsonFormData(String param, String param2) throws ApiException {
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testJsonFormData call received non-success response",
Expand Down Expand Up @@ -834,6 +875,9 @@ public void testQueryParameterCollectionFormat(List<String> pipe, List<String> i
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testQueryParameterCollectionFormat call received non-success response",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ public class FakeClassnameTags123Api {
private final String memberVarBaseUri;
private final Consumer<HttpRequest.Builder> memberVarInterceptor;
private final Duration memberVarReadTimeout;

private final Consumer<HttpResponse<InputStream>> memberVarResponseInterceptor;

public FakeClassnameTags123Api() {
this(new ApiClient());
}
Expand All @@ -53,6 +54,7 @@ public FakeClassnameTags123Api(ApiClient apiClient) {
memberVarBaseUri = apiClient.getBaseUri();
memberVarInterceptor = apiClient.getRequestInterceptor();
memberVarReadTimeout = apiClient.getReadTimeout();
memberVarResponseInterceptor = apiClient.getResponseInterceptor();
}

/**
Expand Down Expand Up @@ -90,6 +92,9 @@ public Client testClassname(Client body) throws ApiException {
HttpResponse<InputStream> localVarResponse = memberVarHttpClient.send(
localVarRequestBuilder.build(),
HttpResponse.BodyHandlers.ofInputStream());
if (memberVarResponseInterceptor != null) {
memberVarResponseInterceptor.accept(localVarResponse);
}
if (localVarResponse.statusCode()/ 100 != 2) {
throw new ApiException(localVarResponse.statusCode(),
"testClassname call received non-success response",
Expand Down
Loading