forked from loafle/openapi-generator-original
Implementing retry logic to restTemplate (#17375)
* Implementing retry logic to restTemplate * Fixing the issue * Adding import * Fix * Fix * minor update, add tests * fix * Adding the maxRetryAttempt, threadWaitTime as additionalProperty * Updating the apiClient * Removing reduntant variable * Generating samples * Fixing format --------- Co-authored-by: Rubini <rubini@Rubinis-MacBook-Air.local> Co-authored-by: William Cheng <wing328hk@gmail.com>
This commit is contained in:
parent
809b3331a9
commit
a792a79059
@ -438,4 +438,8 @@ public class CodegenConstants {
|
|||||||
|
|
||||||
public static final String GENERATE_MARSHAL_JSON = "generateMarshalJSON";
|
public static final String GENERATE_MARSHAL_JSON = "generateMarshalJSON";
|
||||||
public static final String GENERATE_MARSHAL_JSON_DESC = "Generate MarshalJSON method";
|
public static final String GENERATE_MARSHAL_JSON_DESC = "Generate MarshalJSON method";
|
||||||
|
|
||||||
|
public static final String MAX_ATTEMPTS_FOR_RETRY = "maxAttemptsForRetry";
|
||||||
|
|
||||||
|
public static final String WAIT_TIME_OF_THREAD = "waitTimeMillis";
|
||||||
}
|
}
|
||||||
|
@ -139,6 +139,9 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
|||||||
protected boolean generateClientAsBean = false;
|
protected boolean generateClientAsBean = false;
|
||||||
protected boolean useEnumCaseInsensitive = false;
|
protected boolean useEnumCaseInsensitive = false;
|
||||||
|
|
||||||
|
protected int maxAttemptsForRetry = 1;
|
||||||
|
protected long waitTimeMillis = 10l;
|
||||||
|
|
||||||
private static class MpRestClientVersion {
|
private static class MpRestClientVersion {
|
||||||
public final String rootPackage;
|
public final String rootPackage;
|
||||||
public final String pomTemplate;
|
public final String pomTemplate;
|
||||||
@ -465,6 +468,20 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
|||||||
if (additionalProperties.containsKey(USE_ENUM_CASE_INSENSITIVE)) {
|
if (additionalProperties.containsKey(USE_ENUM_CASE_INSENSITIVE)) {
|
||||||
this.setUseEnumCaseInsensitive(Boolean.parseBoolean(additionalProperties.get(USE_ENUM_CASE_INSENSITIVE).toString()));
|
this.setUseEnumCaseInsensitive(Boolean.parseBoolean(additionalProperties.get(USE_ENUM_CASE_INSENSITIVE).toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (additionalProperties.containsKey(CodegenConstants.MAX_ATTEMPTS_FOR_RETRY)) {
|
||||||
|
this.setMaxAttemptsForRetry(Integer.parseInt(additionalProperties.get(CodegenConstants.MAX_ATTEMPTS_FOR_RETRY).toString()));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
additionalProperties.put(CodegenConstants.MAX_ATTEMPTS_FOR_RETRY, maxAttemptsForRetry);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (additionalProperties.containsKey(CodegenConstants.WAIT_TIME_OF_THREAD)) {
|
||||||
|
this.setWaitTimeMillis(Long.parseLong((additionalProperties.get(CodegenConstants.WAIT_TIME_OF_THREAD).toString())));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
additionalProperties.put(CodegenConstants.WAIT_TIME_OF_THREAD, waitTimeMillis);
|
||||||
|
}
|
||||||
writePropertyBack(USE_ENUM_CASE_INSENSITIVE, useEnumCaseInsensitive);
|
writePropertyBack(USE_ENUM_CASE_INSENSITIVE, useEnumCaseInsensitive);
|
||||||
|
|
||||||
final String invokerFolder = (sourceFolder + '/' + invokerPackage).replace(".", "/");
|
final String invokerFolder = (sourceFolder + '/' + invokerPackage).replace(".", "/");
|
||||||
@ -1240,6 +1257,14 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
|||||||
this.useEnumCaseInsensitive = useEnumCaseInsensitive;
|
this.useEnumCaseInsensitive = useEnumCaseInsensitive;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setMaxAttemptsForRetry(int maxAttemptsForRetry) {
|
||||||
|
this.maxAttemptsForRetry= maxAttemptsForRetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWaitTimeMillis(long waitTimeMillis) {
|
||||||
|
this.waitTimeMillis= waitTimeMillis;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialization library.
|
* Serialization library.
|
||||||
*
|
*
|
||||||
|
@ -31,6 +31,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.client.HttpServerErrorException;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
@ -105,6 +106,10 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
|
|||||||
private HttpHeaders defaultHeaders = new HttpHeaders();
|
private HttpHeaders defaultHeaders = new HttpHeaders();
|
||||||
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
||||||
|
|
||||||
|
private int maxAttemptsForRetry = {{maxAttemptsForRetry}};
|
||||||
|
|
||||||
|
private long waitTimeMillis = {{waitTimeMillis}};
|
||||||
|
|
||||||
private String basePath = "{{basePath}}";
|
private String basePath = "{{basePath}}";
|
||||||
|
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
@ -167,6 +172,46 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max attempts for retry
|
||||||
|
*
|
||||||
|
* @return int the max attempts
|
||||||
|
*/
|
||||||
|
public int getMaxAttemptsForRetry() {
|
||||||
|
return maxAttemptsForRetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the max attempts for retry
|
||||||
|
*
|
||||||
|
* @param getMaxAttemptsForRetry the max attempts for retry
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setMaxAttemptsForRetry(int maxAttemptsForRetry) {
|
||||||
|
this.maxAttemptsForRetry = maxAttemptsForRetry;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @return long wait time in milliseconds
|
||||||
|
*/
|
||||||
|
public long getWaitTimeMillis() {
|
||||||
|
return waitTimeMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @param waitTimeMillis the wait time in milliseconds
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setWaitTimeMillis(long waitTimeMillis) {
|
||||||
|
this.waitTimeMillis = waitTimeMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get authentications (key: authentication name, value: authentication).
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
*
|
*
|
||||||
@ -721,7 +766,23 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
|
|||||||
|
|
||||||
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
||||||
|
|
||||||
ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);
|
ResponseEntity<T> responseEntity = null;
|
||||||
|
int attempts = 0;
|
||||||
|
while (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
responseEntity = restTemplate.exchange(requestEntity, returnType);
|
||||||
|
break;
|
||||||
|
} catch (HttpServerErrorException ex) {
|
||||||
|
attempts++;
|
||||||
|
if (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(waitTimeMillis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
||||||
return responseEntity;
|
return responseEntity;
|
||||||
|
@ -22,6 +22,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.client.HttpServerErrorException;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
@ -79,6 +80,10 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
private HttpHeaders defaultHeaders = new HttpHeaders();
|
private HttpHeaders defaultHeaders = new HttpHeaders();
|
||||||
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
||||||
|
|
||||||
|
private int maxAttemptsForRetry = 1;
|
||||||
|
|
||||||
|
private long waitTimeMillis = 10;
|
||||||
|
|
||||||
private String basePath = "http://localhost:3000";
|
private String basePath = "http://localhost:3000";
|
||||||
|
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
@ -136,6 +141,46 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max attempts for retry
|
||||||
|
*
|
||||||
|
* @return int the max attempts
|
||||||
|
*/
|
||||||
|
public int getMaxAttemptsForRetry() {
|
||||||
|
return maxAttemptsForRetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the max attempts for retry
|
||||||
|
*
|
||||||
|
* @param getMaxAttemptsForRetry the max attempts for retry
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setMaxAttemptsForRetry(int maxAttemptsForRetry) {
|
||||||
|
this.maxAttemptsForRetry = maxAttemptsForRetry;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @return long wait time in milliseconds
|
||||||
|
*/
|
||||||
|
public long getWaitTimeMillis() {
|
||||||
|
return waitTimeMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @param waitTimeMillis the wait time in milliseconds
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setWaitTimeMillis(long waitTimeMillis) {
|
||||||
|
this.waitTimeMillis = waitTimeMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get authentications (key: authentication name, value: authentication).
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
*
|
*
|
||||||
@ -637,7 +682,23 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
|
|
||||||
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
||||||
|
|
||||||
ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);
|
ResponseEntity<T> responseEntity = null;
|
||||||
|
int attempts = 0;
|
||||||
|
while (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
responseEntity = restTemplate.exchange(requestEntity, returnType);
|
||||||
|
break;
|
||||||
|
} catch (HttpServerErrorException ex) {
|
||||||
|
attempts++;
|
||||||
|
if (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(waitTimeMillis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
||||||
return responseEntity;
|
return responseEntity;
|
||||||
|
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* Echo Server API
|
||||||
|
* Echo Server API
|
||||||
|
*
|
||||||
|
* The version of the OpenAPI document: 0.1.0
|
||||||
|
* Contact: team@openapitools.oprg
|
||||||
|
*
|
||||||
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
* https://openapi-generator.tech
|
||||||
|
* Do not edit the class manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package org.openapitools.client;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.openapitools.client.api.*;
|
||||||
|
import org.openapitools.client.model.*;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.Ignore;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API tests
|
||||||
|
*/
|
||||||
|
public class CustomTest {
|
||||||
|
|
||||||
|
private final QueryApi api = new QueryApi();
|
||||||
|
private final BodyApi bodyApi = new BodyApi();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test body parameter(s)
|
||||||
|
* <p>
|
||||||
|
* Test body parameter(s)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testEchoBodyPet() {
|
||||||
|
Pet pet = new Pet().id(12345L).name("Hello World").
|
||||||
|
photoUrls(Arrays.asList(new String[]{"http://a.com", "http://b.com"})).category(new Category().id(987L).name("new category"));
|
||||||
|
|
||||||
|
Pet p = bodyApi.testEchoBodyPet(pet);
|
||||||
|
Assert.assertNotNull(p);
|
||||||
|
Assert.assertEquals("Hello World", p.getName());
|
||||||
|
Assert.assertEquals(Long.valueOf(12345L), p.getId());
|
||||||
|
|
||||||
|
// response is empty body
|
||||||
|
Pet p2 = bodyApi.testEchoBodyPet(null);
|
||||||
|
Assert.assertNull(p2);
|
||||||
|
}
|
||||||
|
}
|
@ -22,6 +22,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.client.HttpServerErrorException;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
@ -77,6 +78,10 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
private HttpHeaders defaultHeaders = new HttpHeaders();
|
private HttpHeaders defaultHeaders = new HttpHeaders();
|
||||||
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
||||||
|
|
||||||
|
private int maxAttemptsForRetry = 1;
|
||||||
|
|
||||||
|
private long waitTimeMillis = 10;
|
||||||
|
|
||||||
private String basePath = "http://localhost";
|
private String basePath = "http://localhost";
|
||||||
|
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
@ -132,6 +137,46 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max attempts for retry
|
||||||
|
*
|
||||||
|
* @return int the max attempts
|
||||||
|
*/
|
||||||
|
public int getMaxAttemptsForRetry() {
|
||||||
|
return maxAttemptsForRetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the max attempts for retry
|
||||||
|
*
|
||||||
|
* @param getMaxAttemptsForRetry the max attempts for retry
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setMaxAttemptsForRetry(int maxAttemptsForRetry) {
|
||||||
|
this.maxAttemptsForRetry = maxAttemptsForRetry;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @return long wait time in milliseconds
|
||||||
|
*/
|
||||||
|
public long getWaitTimeMillis() {
|
||||||
|
return waitTimeMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @param waitTimeMillis the wait time in milliseconds
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setWaitTimeMillis(long waitTimeMillis) {
|
||||||
|
this.waitTimeMillis = waitTimeMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get authentications (key: authentication name, value: authentication).
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
*
|
*
|
||||||
@ -580,7 +625,23 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
|
|
||||||
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
||||||
|
|
||||||
ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);
|
ResponseEntity<T> responseEntity = null;
|
||||||
|
int attempts = 0;
|
||||||
|
while (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
responseEntity = restTemplate.exchange(requestEntity, returnType);
|
||||||
|
break;
|
||||||
|
} catch (HttpServerErrorException ex) {
|
||||||
|
attempts++;
|
||||||
|
if (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(waitTimeMillis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
||||||
return responseEntity;
|
return responseEntity;
|
||||||
|
@ -22,6 +22,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.client.HttpServerErrorException;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
@ -79,6 +80,10 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
private HttpHeaders defaultHeaders = new HttpHeaders();
|
private HttpHeaders defaultHeaders = new HttpHeaders();
|
||||||
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
||||||
|
|
||||||
|
private int maxAttemptsForRetry = 1;
|
||||||
|
|
||||||
|
private long waitTimeMillis = 10;
|
||||||
|
|
||||||
private String basePath = "http://petstore.swagger.io/v2";
|
private String basePath = "http://petstore.swagger.io/v2";
|
||||||
|
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
@ -136,6 +141,46 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max attempts for retry
|
||||||
|
*
|
||||||
|
* @return int the max attempts
|
||||||
|
*/
|
||||||
|
public int getMaxAttemptsForRetry() {
|
||||||
|
return maxAttemptsForRetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the max attempts for retry
|
||||||
|
*
|
||||||
|
* @param getMaxAttemptsForRetry the max attempts for retry
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setMaxAttemptsForRetry(int maxAttemptsForRetry) {
|
||||||
|
this.maxAttemptsForRetry = maxAttemptsForRetry;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @return long wait time in milliseconds
|
||||||
|
*/
|
||||||
|
public long getWaitTimeMillis() {
|
||||||
|
return waitTimeMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @param waitTimeMillis the wait time in milliseconds
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setWaitTimeMillis(long waitTimeMillis) {
|
||||||
|
this.waitTimeMillis = waitTimeMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get authentications (key: authentication name, value: authentication).
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
*
|
*
|
||||||
@ -629,7 +674,23 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
|
|
||||||
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
||||||
|
|
||||||
ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);
|
ResponseEntity<T> responseEntity = null;
|
||||||
|
int attempts = 0;
|
||||||
|
while (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
responseEntity = restTemplate.exchange(requestEntity, returnType);
|
||||||
|
break;
|
||||||
|
} catch (HttpServerErrorException ex) {
|
||||||
|
attempts++;
|
||||||
|
if (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(waitTimeMillis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
||||||
return responseEntity;
|
return responseEntity;
|
||||||
|
@ -22,6 +22,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.client.HttpServerErrorException;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
@ -79,6 +80,10 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
private HttpHeaders defaultHeaders = new HttpHeaders();
|
private HttpHeaders defaultHeaders = new HttpHeaders();
|
||||||
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
||||||
|
|
||||||
|
private int maxAttemptsForRetry = 1;
|
||||||
|
|
||||||
|
private long waitTimeMillis = 10;
|
||||||
|
|
||||||
private String basePath = "http://petstore.swagger.io/v2";
|
private String basePath = "http://petstore.swagger.io/v2";
|
||||||
|
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
@ -136,6 +141,46 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max attempts for retry
|
||||||
|
*
|
||||||
|
* @return int the max attempts
|
||||||
|
*/
|
||||||
|
public int getMaxAttemptsForRetry() {
|
||||||
|
return maxAttemptsForRetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the max attempts for retry
|
||||||
|
*
|
||||||
|
* @param getMaxAttemptsForRetry the max attempts for retry
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setMaxAttemptsForRetry(int maxAttemptsForRetry) {
|
||||||
|
this.maxAttemptsForRetry = maxAttemptsForRetry;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @return long wait time in milliseconds
|
||||||
|
*/
|
||||||
|
public long getWaitTimeMillis() {
|
||||||
|
return waitTimeMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @param waitTimeMillis the wait time in milliseconds
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setWaitTimeMillis(long waitTimeMillis) {
|
||||||
|
this.waitTimeMillis = waitTimeMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get authentications (key: authentication name, value: authentication).
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
*
|
*
|
||||||
@ -629,7 +674,23 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
|
|
||||||
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
||||||
|
|
||||||
ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);
|
ResponseEntity<T> responseEntity = null;
|
||||||
|
int attempts = 0;
|
||||||
|
while (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
responseEntity = restTemplate.exchange(requestEntity, returnType);
|
||||||
|
break;
|
||||||
|
} catch (HttpServerErrorException ex) {
|
||||||
|
attempts++;
|
||||||
|
if (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(waitTimeMillis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
||||||
return responseEntity;
|
return responseEntity;
|
||||||
|
@ -22,6 +22,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.client.HttpServerErrorException;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
@ -79,6 +80,10 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
private HttpHeaders defaultHeaders = new HttpHeaders();
|
private HttpHeaders defaultHeaders = new HttpHeaders();
|
||||||
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
||||||
|
|
||||||
|
private int maxAttemptsForRetry = 1;
|
||||||
|
|
||||||
|
private long waitTimeMillis = 10;
|
||||||
|
|
||||||
private String basePath = "http://petstore.swagger.io/v2";
|
private String basePath = "http://petstore.swagger.io/v2";
|
||||||
|
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
@ -136,6 +141,46 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max attempts for retry
|
||||||
|
*
|
||||||
|
* @return int the max attempts
|
||||||
|
*/
|
||||||
|
public int getMaxAttemptsForRetry() {
|
||||||
|
return maxAttemptsForRetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the max attempts for retry
|
||||||
|
*
|
||||||
|
* @param getMaxAttemptsForRetry the max attempts for retry
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setMaxAttemptsForRetry(int maxAttemptsForRetry) {
|
||||||
|
this.maxAttemptsForRetry = maxAttemptsForRetry;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @return long wait time in milliseconds
|
||||||
|
*/
|
||||||
|
public long getWaitTimeMillis() {
|
||||||
|
return waitTimeMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @param waitTimeMillis the wait time in milliseconds
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setWaitTimeMillis(long waitTimeMillis) {
|
||||||
|
this.waitTimeMillis = waitTimeMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get authentications (key: authentication name, value: authentication).
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
*
|
*
|
||||||
@ -629,7 +674,23 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
|
|
||||||
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
||||||
|
|
||||||
ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);
|
ResponseEntity<T> responseEntity = null;
|
||||||
|
int attempts = 0;
|
||||||
|
while (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
responseEntity = restTemplate.exchange(requestEntity, returnType);
|
||||||
|
break;
|
||||||
|
} catch (HttpServerErrorException ex) {
|
||||||
|
attempts++;
|
||||||
|
if (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(waitTimeMillis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
||||||
return responseEntity;
|
return responseEntity;
|
||||||
|
@ -27,6 +27,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.client.HttpServerErrorException;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
@ -86,6 +87,10 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
private HttpHeaders defaultHeaders = new HttpHeaders();
|
private HttpHeaders defaultHeaders = new HttpHeaders();
|
||||||
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
||||||
|
|
||||||
|
private int maxAttemptsForRetry = 1;
|
||||||
|
|
||||||
|
private long waitTimeMillis = 10;
|
||||||
|
|
||||||
private String basePath = "http://petstore.swagger.io:80/v2";
|
private String basePath = "http://petstore.swagger.io:80/v2";
|
||||||
|
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
@ -146,6 +151,46 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max attempts for retry
|
||||||
|
*
|
||||||
|
* @return int the max attempts
|
||||||
|
*/
|
||||||
|
public int getMaxAttemptsForRetry() {
|
||||||
|
return maxAttemptsForRetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the max attempts for retry
|
||||||
|
*
|
||||||
|
* @param getMaxAttemptsForRetry the max attempts for retry
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setMaxAttemptsForRetry(int maxAttemptsForRetry) {
|
||||||
|
this.maxAttemptsForRetry = maxAttemptsForRetry;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @return long wait time in milliseconds
|
||||||
|
*/
|
||||||
|
public long getWaitTimeMillis() {
|
||||||
|
return waitTimeMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @param waitTimeMillis the wait time in milliseconds
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setWaitTimeMillis(long waitTimeMillis) {
|
||||||
|
this.waitTimeMillis = waitTimeMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get authentications (key: authentication name, value: authentication).
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
*
|
*
|
||||||
@ -692,7 +737,23 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
|
|
||||||
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
||||||
|
|
||||||
ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);
|
ResponseEntity<T> responseEntity = null;
|
||||||
|
int attempts = 0;
|
||||||
|
while (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
responseEntity = restTemplate.exchange(requestEntity, returnType);
|
||||||
|
break;
|
||||||
|
} catch (HttpServerErrorException ex) {
|
||||||
|
attempts++;
|
||||||
|
if (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(waitTimeMillis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
||||||
return responseEntity;
|
return responseEntity;
|
||||||
|
@ -22,6 +22,7 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.client.HttpServerErrorException;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
@ -81,6 +82,10 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
private HttpHeaders defaultHeaders = new HttpHeaders();
|
private HttpHeaders defaultHeaders = new HttpHeaders();
|
||||||
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
private MultiValueMap<String, String> defaultCookies = new LinkedMultiValueMap<String, String>();
|
||||||
|
|
||||||
|
private int maxAttemptsForRetry = 1;
|
||||||
|
|
||||||
|
private long waitTimeMillis = 10;
|
||||||
|
|
||||||
private String basePath = "http://petstore.swagger.io:80/v2";
|
private String basePath = "http://petstore.swagger.io:80/v2";
|
||||||
|
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
@ -141,6 +146,46 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the max attempts for retry
|
||||||
|
*
|
||||||
|
* @return int the max attempts
|
||||||
|
*/
|
||||||
|
public int getMaxAttemptsForRetry() {
|
||||||
|
return maxAttemptsForRetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the max attempts for retry
|
||||||
|
*
|
||||||
|
* @param getMaxAttemptsForRetry the max attempts for retry
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setMaxAttemptsForRetry(int maxAttemptsForRetry) {
|
||||||
|
this.maxAttemptsForRetry = maxAttemptsForRetry;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @return long wait time in milliseconds
|
||||||
|
*/
|
||||||
|
public long getWaitTimeMillis() {
|
||||||
|
return waitTimeMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the wait time in milliseconds
|
||||||
|
*
|
||||||
|
* @param waitTimeMillis the wait time in milliseconds
|
||||||
|
* @return ApiClient this client
|
||||||
|
*/
|
||||||
|
public ApiClient setWaitTimeMillis(long waitTimeMillis) {
|
||||||
|
this.waitTimeMillis = waitTimeMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get authentications (key: authentication name, value: authentication).
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
*
|
*
|
||||||
@ -687,7 +732,23 @@ public class ApiClient extends JavaTimeFormatter {
|
|||||||
|
|
||||||
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));
|
||||||
|
|
||||||
ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);
|
ResponseEntity<T> responseEntity = null;
|
||||||
|
int attempts = 0;
|
||||||
|
while (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
responseEntity = restTemplate.exchange(requestEntity, returnType);
|
||||||
|
break;
|
||||||
|
} catch (HttpServerErrorException ex) {
|
||||||
|
attempts++;
|
||||||
|
if (attempts < maxAttemptsForRetry) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(waitTimeMillis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
if (responseEntity.getStatusCode().is2xxSuccessful()) {
|
||||||
return responseEntity;
|
return responseEntity;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user