mirror of
https://github.com/jlengrand/openapi-generator.git
synced 2026-05-16 00:21:19 +00:00
@@ -48,7 +48,7 @@ import {{invokerPackage}}.auth.OAuthFlow;
|
||||
public class ApiClient {
|
||||
|
||||
private Map<String, Interceptor> apiAuthorizations;
|
||||
private OkHttpClient okClient;
|
||||
private OkHttpClient.Builder okBuilder;
|
||||
private Retrofit.Builder adapterBuilder;
|
||||
|
||||
public ApiClient() {
|
||||
@@ -118,7 +118,7 @@ public class ApiClient {
|
||||
.setPassword(password);
|
||||
}
|
||||
|
||||
public void createDefaultAdapter() {
|
||||
public void createDefaultAdapter() {
|
||||
Gson gson = new GsonBuilder()
|
||||
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
|
||||
{{^java8}}
|
||||
@@ -130,7 +130,7 @@ public class ApiClient {
|
||||
.registerTypeAdapter(LocalDate.class, new LocalDateTypeAdapter())
|
||||
.create();
|
||||
|
||||
okClient = new OkHttpClient();
|
||||
okBuilder = new OkHttpClient.Builder();
|
||||
|
||||
String baseUrl = "{{{basePath}}}";
|
||||
if(!baseUrl.endsWith("/"))
|
||||
@@ -139,14 +139,16 @@ public class ApiClient {
|
||||
adapterBuilder = new Retrofit
|
||||
.Builder()
|
||||
.baseUrl(baseUrl)
|
||||
.client(okClient)
|
||||
{{#useRxJava}}.addCallAdapterFactory(RxJavaCallAdapterFactory.create()){{/useRxJava}}
|
||||
.addConverterFactory(ScalarsConverterFactory.create())
|
||||
.addConverterFactory(GsonCustomConverterFactory.create(gson));
|
||||
}
|
||||
|
||||
public <S> S createService(Class<S> serviceClass) {
|
||||
return adapterBuilder.build().create(serviceClass);
|
||||
return adapterBuilder
|
||||
.client(okBuilder.build())
|
||||
.build()
|
||||
.create(serviceClass);
|
||||
|
||||
}
|
||||
|
||||
@@ -272,7 +274,7 @@ public class ApiClient {
|
||||
throw new RuntimeException("auth name \"" + authName + "\" already in api authorizations");
|
||||
}
|
||||
apiAuthorizations.put(authName, authorization);
|
||||
okClient.interceptors().add(authorization);
|
||||
okBuilder.addInterceptor(authorization);
|
||||
}
|
||||
|
||||
public Map<String, Interceptor> getApiAuthorizations() {
|
||||
@@ -291,24 +293,24 @@ public class ApiClient {
|
||||
this.adapterBuilder = adapterBuilder;
|
||||
}
|
||||
|
||||
public OkHttpClient getOkClient() {
|
||||
return okClient;
|
||||
public OkHttpClient.Builder getOkBuilder() {
|
||||
return okBuilder;
|
||||
}
|
||||
|
||||
public void addAuthsToOkClient(OkHttpClient okClient) {
|
||||
public void addAuthsToOkBuilder(OkHttpClient.Builder okBuilder) {
|
||||
for(Interceptor apiAuthorization : apiAuthorizations.values()) {
|
||||
okClient.interceptors().add(apiAuthorization);
|
||||
okBuilder.addInterceptor(apiAuthorization);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Clones the okClient given in parameter, adds the auth interceptors and uses it to configure the Retrofit
|
||||
* Clones the okBuilder given in parameter, adds the auth interceptors and uses it to configure the Retrofit
|
||||
* @param okClient
|
||||
*/
|
||||
public void configureFromOkclient(OkHttpClient okClient) {
|
||||
OkHttpClient clone = okClient.newBuilder().build();
|
||||
addAuthsToOkClient(clone);
|
||||
adapterBuilder.client(clone);
|
||||
this.okBuilder = okClient.newBuilder();
|
||||
addAuthsToOkBuilder(this.okBuilder);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,10 +32,6 @@ After the client library is installed/deployed, you can use it in your Maven pro
|
||||
|
||||
```
|
||||
|
||||
## Recommendation
|
||||
|
||||
It's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issue.
|
||||
|
||||
## Author
|
||||
|
||||
{{#apiInfo}}{{#apis}}{{^hasMore}}{{infoEmail}}
|
||||
|
||||
@@ -155,16 +155,15 @@
|
||||
<java.version>{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}</java.version>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<swagger-core-version>1.5.8</swagger-core-version>
|
||||
<retrofit-version>2.0.2</retrofit-version>
|
||||
<swagger-core-version>1.5.9</swagger-core-version>
|
||||
<retrofit-version>2.1.0</retrofit-version>
|
||||
{{#useRxJava}}
|
||||
<rxjava-version>1.1.3</rxjava-version>
|
||||
<rxjava-version>1.1.6</rxjava-version>
|
||||
{{/useRxJava}}
|
||||
{{^java8}}
|
||||
<jodatime-version>2.9.3</jodatime-version>
|
||||
<jodatime-version>2.9.4</jodatime-version>
|
||||
{{/java8}}
|
||||
<oltu-version>1.0.1</oltu-version>
|
||||
<maven-plugin-version>1.0.0</maven-plugin-version>
|
||||
<junit-version>4.12</junit-version>
|
||||
</properties>
|
||||
</project>
|
||||
|
||||
Reference in New Issue
Block a user