Skip to content

Commit 135c8f4

Browse files
authored
[Java][native] extend native ApiClient (#8557)
1 parent 683dcb8 commit 135c8f4

File tree

4 files changed

+160
-48
lines changed
  • modules/openapi-generator/src/main/resources/Java/libraries/native
  • samples
    • client/petstore/java
    • openapi3/client/petstore/java/native/src/main/java/org/openapitools/client

4 files changed

+160
-48
lines changed

modules/openapi-generator/src/main/resources/Java/libraries/native/ApiClient.mustache

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,28 @@ public class ApiClient {
157157
* Ctor.
158158
*/
159159
public ApiClient() {
160-
builder = HttpClient.newBuilder();
161-
mapper = new ObjectMapper();
160+
this.builder = createDefaultHttpClientBuilder();
161+
this.mapper = createDefaultObjectMapper();
162+
updateBaseUri(getDefaultBaseUri());
163+
interceptor = null;
164+
readTimeout = null;
165+
responseInterceptor = null;
166+
}
167+
168+
/**
169+
* Ctor.
170+
*/
171+
public ApiClient(HttpClient.Builder builder, ObjectMapper mapper, String baseUri) {
172+
this.builder = builder;
173+
this.mapper = mapper;
174+
updateBaseUri(baseUri);
175+
interceptor = null;
176+
readTimeout = null;
177+
responseInterceptor = null;
178+
}
179+
180+
protected ObjectMapper createDefaultObjectMapper() {
181+
ObjectMapper mapper = new ObjectMapper();
162182
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
163183
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
164184
mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
@@ -168,17 +188,25 @@ public class ApiClient {
168188
mapper.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);
169189
mapper.registerModule(new JavaTimeModule());
170190
{{#openApiNullable}}
171-
JsonNullableModule jnm = new JsonNullableModule();
172-
mapper.registerModule(jnm);
191+
mapper.registerModule(new JsonNullableModule());
173192
{{/openApiNullable}}
174-
URI baseURI = URI.create("{{{basePath}}}");
175-
scheme = baseURI.getScheme();
176-
host = baseURI.getHost();
177-
port = baseURI.getPort();
178-
basePath = baseURI.getRawPath();
179-
interceptor = null;
180-
readTimeout = null;
181-
responseInterceptor = null;
193+
return mapper;
194+
}
195+
196+
protected String getDefaultBaseUri() {
197+
return "{{{basePath}}}";
198+
}
199+
200+
protected HttpClient.Builder createDefaultHttpClientBuilder() {
201+
return HttpClient.newBuilder();
202+
}
203+
204+
public void updateBaseUri(String baseUri) {
205+
URI uri = URI.create(baseUri);
206+
scheme = uri.getScheme();
207+
host = uri.getHost();
208+
port = uri.getPort();
209+
basePath = uri.getRawPath();
182210
}
183211

184212
/**

samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/ApiClient.java

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,28 @@ public static List<Pair> parameterToPairs(
162162
* Ctor.
163163
*/
164164
public ApiClient() {
165-
builder = HttpClient.newBuilder();
166-
mapper = new ObjectMapper();
165+
this.builder = createDefaultHttpClientBuilder();
166+
this.mapper = createDefaultObjectMapper();
167+
updateBaseUri(getDefaultBaseUri());
168+
interceptor = null;
169+
readTimeout = null;
170+
responseInterceptor = null;
171+
}
172+
173+
/**
174+
* Ctor.
175+
*/
176+
public ApiClient(HttpClient.Builder builder, ObjectMapper mapper, String baseUri) {
177+
this.builder = builder;
178+
this.mapper = mapper;
179+
updateBaseUri(baseUri);
180+
interceptor = null;
181+
readTimeout = null;
182+
responseInterceptor = null;
183+
}
184+
185+
protected ObjectMapper createDefaultObjectMapper() {
186+
ObjectMapper mapper = new ObjectMapper();
167187
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
168188
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
169189
mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
@@ -172,16 +192,24 @@ public ApiClient() {
172192
mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
173193
mapper.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);
174194
mapper.registerModule(new JavaTimeModule());
175-
JsonNullableModule jnm = new JsonNullableModule();
176-
mapper.registerModule(jnm);
177-
URI baseURI = URI.create("http://petstore.swagger.io:80/v2");
178-
scheme = baseURI.getScheme();
179-
host = baseURI.getHost();
180-
port = baseURI.getPort();
181-
basePath = baseURI.getRawPath();
182-
interceptor = null;
183-
readTimeout = null;
184-
responseInterceptor = null;
195+
mapper.registerModule(new JsonNullableModule());
196+
return mapper;
197+
}
198+
199+
protected String getDefaultBaseUri() {
200+
return "http://petstore.swagger.io:80/v2";
201+
}
202+
203+
protected HttpClient.Builder createDefaultHttpClientBuilder() {
204+
return HttpClient.newBuilder();
205+
}
206+
207+
public void updateBaseUri(String baseUri) {
208+
URI uri = URI.create(baseUri);
209+
scheme = uri.getScheme();
210+
host = uri.getHost();
211+
port = uri.getPort();
212+
basePath = uri.getRawPath();
185213
}
186214

187215
/**

samples/client/petstore/java/native/src/main/java/org/openapitools/client/ApiClient.java

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,28 @@ public static List<Pair> parameterToPairs(
162162
* Ctor.
163163
*/
164164
public ApiClient() {
165-
builder = HttpClient.newBuilder();
166-
mapper = new ObjectMapper();
165+
this.builder = createDefaultHttpClientBuilder();
166+
this.mapper = createDefaultObjectMapper();
167+
updateBaseUri(getDefaultBaseUri());
168+
interceptor = null;
169+
readTimeout = null;
170+
responseInterceptor = null;
171+
}
172+
173+
/**
174+
* Ctor.
175+
*/
176+
public ApiClient(HttpClient.Builder builder, ObjectMapper mapper, String baseUri) {
177+
this.builder = builder;
178+
this.mapper = mapper;
179+
updateBaseUri(baseUri);
180+
interceptor = null;
181+
readTimeout = null;
182+
responseInterceptor = null;
183+
}
184+
185+
protected ObjectMapper createDefaultObjectMapper() {
186+
ObjectMapper mapper = new ObjectMapper();
167187
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
168188
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
169189
mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
@@ -172,16 +192,24 @@ public ApiClient() {
172192
mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
173193
mapper.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);
174194
mapper.registerModule(new JavaTimeModule());
175-
JsonNullableModule jnm = new JsonNullableModule();
176-
mapper.registerModule(jnm);
177-
URI baseURI = URI.create("http://petstore.swagger.io:80/v2");
178-
scheme = baseURI.getScheme();
179-
host = baseURI.getHost();
180-
port = baseURI.getPort();
181-
basePath = baseURI.getRawPath();
182-
interceptor = null;
183-
readTimeout = null;
184-
responseInterceptor = null;
195+
mapper.registerModule(new JsonNullableModule());
196+
return mapper;
197+
}
198+
199+
protected String getDefaultBaseUri() {
200+
return "http://petstore.swagger.io:80/v2";
201+
}
202+
203+
protected HttpClient.Builder createDefaultHttpClientBuilder() {
204+
return HttpClient.newBuilder();
205+
}
206+
207+
public void updateBaseUri(String baseUri) {
208+
URI uri = URI.create(baseUri);
209+
scheme = uri.getScheme();
210+
host = uri.getHost();
211+
port = uri.getPort();
212+
basePath = uri.getRawPath();
185213
}
186214

187215
/**

samples/openapi3/client/petstore/java/native/src/main/java/org/openapitools/client/ApiClient.java

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,28 @@ public static List<Pair> parameterToPairs(
162162
* Ctor.
163163
*/
164164
public ApiClient() {
165-
builder = HttpClient.newBuilder();
166-
mapper = new ObjectMapper();
165+
this.builder = createDefaultHttpClientBuilder();
166+
this.mapper = createDefaultObjectMapper();
167+
updateBaseUri(getDefaultBaseUri());
168+
interceptor = null;
169+
readTimeout = null;
170+
responseInterceptor = null;
171+
}
172+
173+
/**
174+
* Ctor.
175+
*/
176+
public ApiClient(HttpClient.Builder builder, ObjectMapper mapper, String baseUri) {
177+
this.builder = builder;
178+
this.mapper = mapper;
179+
updateBaseUri(baseUri);
180+
interceptor = null;
181+
readTimeout = null;
182+
responseInterceptor = null;
183+
}
184+
185+
protected ObjectMapper createDefaultObjectMapper() {
186+
ObjectMapper mapper = new ObjectMapper();
167187
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
168188
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
169189
mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
@@ -172,16 +192,24 @@ public ApiClient() {
172192
mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
173193
mapper.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);
174194
mapper.registerModule(new JavaTimeModule());
175-
JsonNullableModule jnm = new JsonNullableModule();
176-
mapper.registerModule(jnm);
177-
URI baseURI = URI.create("http://petstore.swagger.io:80/v2");
178-
scheme = baseURI.getScheme();
179-
host = baseURI.getHost();
180-
port = baseURI.getPort();
181-
basePath = baseURI.getRawPath();
182-
interceptor = null;
183-
readTimeout = null;
184-
responseInterceptor = null;
195+
mapper.registerModule(new JsonNullableModule());
196+
return mapper;
197+
}
198+
199+
protected String getDefaultBaseUri() {
200+
return "http://petstore.swagger.io:80/v2";
201+
}
202+
203+
protected HttpClient.Builder createDefaultHttpClientBuilder() {
204+
return HttpClient.newBuilder();
205+
}
206+
207+
public void updateBaseUri(String baseUri) {
208+
URI uri = URI.create(baseUri);
209+
scheme = uri.getScheme();
210+
host = uri.getHost();
211+
port = uri.getPort();
212+
basePath = uri.getRawPath();
185213
}
186214

187215
/**

0 commit comments

Comments
 (0)