mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-29 04:00:51 +00:00
[Java][RestTemplate] fix compilation issue with API client (resttemplate) (#5832)
* adapt the resttemplate target for the threeten Time API * add threeten dependencies to build.gradle * fix missing dollar sign * fix missing dollar sign
This commit is contained in:
parent
fee54157c0
commit
32a6f19933
@ -24,6 +24,13 @@ import org.springframework.util.StringUtils;
|
|||||||
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;
|
||||||
|
{{#threetenbp}}
|
||||||
|
import org.threeten.bp.*;
|
||||||
|
import com.fasterxml.jackson.datatype.threetenbp.ThreeTenModule;
|
||||||
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
{{/threetenbp}}
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -303,6 +310,14 @@ public class ApiClient {
|
|||||||
*/
|
*/
|
||||||
public ApiClient setDateFormat(DateFormat dateFormat) {
|
public ApiClient setDateFormat(DateFormat dateFormat) {
|
||||||
this.dateFormat = dateFormat;
|
this.dateFormat = dateFormat;
|
||||||
|
{{#threetenbp}}
|
||||||
|
for(HttpMessageConverter converter:restTemplate.getMessageConverters()){
|
||||||
|
if(converter instanceof AbstractJackson2HttpMessageConverter){
|
||||||
|
ObjectMapper mapper = ((AbstractJackson2HttpMessageConverter)converter).getObjectMapper();
|
||||||
|
mapper.setDateFormat(dateFormat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{{/threetenbp}}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -551,6 +566,18 @@ public class ApiClient {
|
|||||||
*/
|
*/
|
||||||
protected RestTemplate buildRestTemplate() {
|
protected RestTemplate buildRestTemplate() {
|
||||||
RestTemplate restTemplate = new RestTemplate();
|
RestTemplate restTemplate = new RestTemplate();
|
||||||
|
{{#threetenbp}}
|
||||||
|
for(HttpMessageConverter converter:restTemplate.getMessageConverters()){
|
||||||
|
if(converter instanceof AbstractJackson2HttpMessageConverter){
|
||||||
|
ObjectMapper mapper = ((AbstractJackson2HttpMessageConverter)converter).getObjectMapper();
|
||||||
|
ThreeTenModule module = new ThreeTenModule();
|
||||||
|
module.addDeserializer(Instant.class, CustomInstantDeserializer.INSTANT);
|
||||||
|
module.addDeserializer(OffsetDateTime.class, CustomInstantDeserializer.OFFSET_DATE_TIME);
|
||||||
|
module.addDeserializer(ZonedDateTime.class, CustomInstantDeserializer.ZONED_DATE_TIME);
|
||||||
|
mapper.registerModule(module);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{{/threetenbp}}
|
||||||
// This allows us to read the response more than once - Necessary for debugging.
|
// This allows us to read the response more than once - Necessary for debugging.
|
||||||
restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(restTemplate.getRequestFactory()));
|
restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(restTemplate.getRequestFactory()));
|
||||||
return restTemplate;
|
return restTemplate;
|
||||||
|
@ -111,6 +111,9 @@ ext {
|
|||||||
spring_web_version = "4.3.7.RELEASE"
|
spring_web_version = "4.3.7.RELEASE"
|
||||||
jodatime_version = "2.9.4"
|
jodatime_version = "2.9.4"
|
||||||
junit_version = "4.12"
|
junit_version = "4.12"
|
||||||
|
{{#threetenbp}}
|
||||||
|
jackson_threeten_version = "2.6.4"
|
||||||
|
{{/threetenbp}}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@ -123,9 +126,12 @@ dependencies {
|
|||||||
{{#java8}}
|
{{#java8}}
|
||||||
compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version"
|
compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version"
|
||||||
{{/java8}}
|
{{/java8}}
|
||||||
{{^java8}}
|
{{#joda}}
|
||||||
compile "com.fasterxml.jackson.datatype:jackson-datatype-joda:$jackson_version"
|
compile "com.fasterxml.jackson.datatype:jackson-datatype-joda:$jackson_version"
|
||||||
compile "joda-time:joda-time:$jodatime_version"
|
compile "joda-time:joda-time:$jodatime_version"
|
||||||
{{/java8}}
|
{{/joda}}
|
||||||
|
{{#threetenbp}}
|
||||||
|
compile "com.github.joschi.jackson:jackson-datatype-threetenbp:$jackson_threeten_version"
|
||||||
|
{{/threetenbp}}
|
||||||
testCompile "junit:junit:$junit_version"
|
testCompile "junit:junit:$junit_version"
|
||||||
}
|
}
|
||||||
|
@ -225,7 +225,7 @@
|
|||||||
<version>${jackson-version}</version>
|
<version>${jackson-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
{{/java8}}
|
{{/java8}}
|
||||||
{{^java8}}
|
{{#joda}}
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
<artifactId>jackson-datatype-joda</artifactId>
|
<artifactId>jackson-datatype-joda</artifactId>
|
||||||
@ -236,7 +236,14 @@
|
|||||||
<artifactId>joda-time</artifactId>
|
<artifactId>joda-time</artifactId>
|
||||||
<version>${jodatime-version}</version>
|
<version>${jodatime-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
{{/java8}}
|
{{/joda}}
|
||||||
|
{{#threetenbp}}
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.joschi.jackson</groupId>
|
||||||
|
<artifactId>jackson-datatype-threetenbp</artifactId>
|
||||||
|
<version>${jackson-threetenbp-version}</version>
|
||||||
|
</dependency>
|
||||||
|
{{/threetenbp}}
|
||||||
|
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<dependency>
|
<dependency>
|
||||||
@ -251,9 +258,12 @@
|
|||||||
<swagger-annotations-version>1.5.8</swagger-annotations-version>
|
<swagger-annotations-version>1.5.8</swagger-annotations-version>
|
||||||
<spring-web-version>4.3.7.RELEASE</spring-web-version>
|
<spring-web-version>4.3.7.RELEASE</spring-web-version>
|
||||||
<jackson-version>2.8.8</jackson-version>
|
<jackson-version>2.8.8</jackson-version>
|
||||||
{{^java8}}
|
{{#joda}}
|
||||||
<jodatime-version>2.9.4</jodatime-version>
|
<jodatime-version>2.9.4</jodatime-version>
|
||||||
{{/java8}}
|
{{/joda}}
|
||||||
|
{{#threetenbp}}
|
||||||
|
<jackson-threetenbp-version>2.6.4</jackson-threetenbp-version>
|
||||||
|
{{/threetenbp}}
|
||||||
<maven-plugin-version>1.0.0</maven-plugin-version>
|
<maven-plugin-version>1.0.0</maven-plugin-version>
|
||||||
<junit-version>4.12</junit-version>
|
<junit-version>4.12</junit-version>
|
||||||
</properties>
|
</properties>
|
||||||
|
@ -61,26 +61,22 @@ Please follow the [installation](#installation) instruction and execute the foll
|
|||||||
import io.swagger.client.*;
|
import io.swagger.client.*;
|
||||||
import io.swagger.client.auth.*;
|
import io.swagger.client.auth.*;
|
||||||
import io.swagger.client.model.*;
|
import io.swagger.client.model.*;
|
||||||
import io.swagger.client.api.PetApi;
|
import io.swagger.client.api.FakeApi;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class PetApiExample {
|
public class FakeApiExample {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
ApiClient defaultClient = Configuration.getDefaultApiClient();
|
|
||||||
|
|
||||||
// Configure OAuth2 access token for authorization: petstore_auth
|
FakeApi apiInstance = new FakeApi();
|
||||||
OAuth petstore_auth = (OAuth) defaultClient.getAuthentication("petstore_auth");
|
Boolean body = true; // Boolean | Input boolean as post body
|
||||||
petstore_auth.setAccessToken("YOUR ACCESS TOKEN");
|
|
||||||
|
|
||||||
PetApi apiInstance = new PetApi();
|
|
||||||
Pet body = new Pet(); // Pet | Pet object that needs to be added to the store
|
|
||||||
try {
|
try {
|
||||||
apiInstance.addPet(body);
|
Boolean result = apiInstance.fakeOuterBooleanSerialize(body);
|
||||||
|
System.out.println(result);
|
||||||
} catch (ApiException e) {
|
} catch (ApiException e) {
|
||||||
System.err.println("Exception when calling PetApi#addPet");
|
System.err.println("Exception when calling FakeApi#fakeOuterBooleanSerialize");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -90,10 +86,19 @@ public class PetApiExample {
|
|||||||
|
|
||||||
## Documentation for API Endpoints
|
## Documentation for API Endpoints
|
||||||
|
|
||||||
All URIs are relative to *http://petstore.swagger.io/v2*
|
All URIs are relative to *http://petstore.swagger.io:80/v2*
|
||||||
|
|
||||||
Class | Method | HTTP request | Description
|
Class | Method | HTTP request | Description
|
||||||
------------ | ------------- | ------------- | -------------
|
------------ | ------------- | ------------- | -------------
|
||||||
|
*FakeApi* | [**fakeOuterBooleanSerialize**](docs/FakeApi.md#fakeOuterBooleanSerialize) | **POST** /fake/outer/boolean |
|
||||||
|
*FakeApi* | [**fakeOuterCompositeSerialize**](docs/FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite |
|
||||||
|
*FakeApi* | [**fakeOuterNumberSerialize**](docs/FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number |
|
||||||
|
*FakeApi* | [**fakeOuterStringSerialize**](docs/FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string |
|
||||||
|
*FakeApi* | [**testClientModel**](docs/FakeApi.md#testClientModel) | **PATCH** /fake | To test \"client\" model
|
||||||
|
*FakeApi* | [**testEndpointParameters**](docs/FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
|
||||||
|
*FakeApi* | [**testEnumParameters**](docs/FakeApi.md#testEnumParameters) | **GET** /fake | To test enum parameters
|
||||||
|
*FakeApi* | [**testJsonFormData**](docs/FakeApi.md#testJsonFormData) | **GET** /fake/jsonFormData | test json serialization of form data
|
||||||
|
*FakeClassnameTags123Api* | [**testClassname**](docs/FakeClassnameTags123Api.md#testClassname) | **PATCH** /fake_classname_test | To test class name in snake case
|
||||||
*PetApi* | [**addPet**](docs/PetApi.md#addPet) | **POST** /pet | Add a new pet to the store
|
*PetApi* | [**addPet**](docs/PetApi.md#addPet) | **POST** /pet | Add a new pet to the store
|
||||||
*PetApi* | [**deletePet**](docs/PetApi.md#deletePet) | **DELETE** /pet/{petId} | Deletes a pet
|
*PetApi* | [**deletePet**](docs/PetApi.md#deletePet) | **DELETE** /pet/{petId} | Deletes a pet
|
||||||
*PetApi* | [**findPetsByStatus**](docs/PetApi.md#findPetsByStatus) | **GET** /pet/findByStatus | Finds Pets by status
|
*PetApi* | [**findPetsByStatus**](docs/PetApi.md#findPetsByStatus) | **GET** /pet/findByStatus | Finds Pets by status
|
||||||
@ -102,9 +107,9 @@ Class | Method | HTTP request | Description
|
|||||||
*PetApi* | [**updatePet**](docs/PetApi.md#updatePet) | **PUT** /pet | Update an existing pet
|
*PetApi* | [**updatePet**](docs/PetApi.md#updatePet) | **PUT** /pet | Update an existing pet
|
||||||
*PetApi* | [**updatePetWithForm**](docs/PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data
|
*PetApi* | [**updatePetWithForm**](docs/PetApi.md#updatePetWithForm) | **POST** /pet/{petId} | Updates a pet in the store with form data
|
||||||
*PetApi* | [**uploadFile**](docs/PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image
|
*PetApi* | [**uploadFile**](docs/PetApi.md#uploadFile) | **POST** /pet/{petId}/uploadImage | uploads an image
|
||||||
*StoreApi* | [**deleteOrder**](docs/StoreApi.md#deleteOrder) | **DELETE** /store/order/{orderId} | Delete purchase order by ID
|
*StoreApi* | [**deleteOrder**](docs/StoreApi.md#deleteOrder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
|
||||||
*StoreApi* | [**getInventory**](docs/StoreApi.md#getInventory) | **GET** /store/inventory | Returns pet inventories by status
|
*StoreApi* | [**getInventory**](docs/StoreApi.md#getInventory) | **GET** /store/inventory | Returns pet inventories by status
|
||||||
*StoreApi* | [**getOrderById**](docs/StoreApi.md#getOrderById) | **GET** /store/order/{orderId} | Find purchase order by ID
|
*StoreApi* | [**getOrderById**](docs/StoreApi.md#getOrderById) | **GET** /store/order/{order_id} | Find purchase order by ID
|
||||||
*StoreApi* | [**placeOrder**](docs/StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet
|
*StoreApi* | [**placeOrder**](docs/StoreApi.md#placeOrder) | **POST** /store/order | Place an order for a pet
|
||||||
*UserApi* | [**createUser**](docs/UserApi.md#createUser) | **POST** /user | Create user
|
*UserApi* | [**createUser**](docs/UserApi.md#createUser) | **POST** /user | Create user
|
||||||
*UserApi* | [**createUsersWithArrayInput**](docs/UserApi.md#createUsersWithArrayInput) | **POST** /user/createWithArray | Creates list of users with given input array
|
*UserApi* | [**createUsersWithArrayInput**](docs/UserApi.md#createUsersWithArrayInput) | **POST** /user/createWithArray | Creates list of users with given input array
|
||||||
@ -118,37 +123,68 @@ Class | Method | HTTP request | Description
|
|||||||
|
|
||||||
## Documentation for Models
|
## Documentation for Models
|
||||||
|
|
||||||
|
- [AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md)
|
||||||
|
- [Animal](docs/Animal.md)
|
||||||
|
- [AnimalFarm](docs/AnimalFarm.md)
|
||||||
|
- [ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
|
||||||
|
- [ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
|
||||||
|
- [ArrayTest](docs/ArrayTest.md)
|
||||||
|
- [Capitalization](docs/Capitalization.md)
|
||||||
- [Category](docs/Category.md)
|
- [Category](docs/Category.md)
|
||||||
|
- [ClassModel](docs/ClassModel.md)
|
||||||
|
- [Client](docs/Client.md)
|
||||||
|
- [EnumArrays](docs/EnumArrays.md)
|
||||||
|
- [EnumClass](docs/EnumClass.md)
|
||||||
|
- [EnumTest](docs/EnumTest.md)
|
||||||
|
- [FormatTest](docs/FormatTest.md)
|
||||||
|
- [HasOnlyReadOnly](docs/HasOnlyReadOnly.md)
|
||||||
|
- [MapTest](docs/MapTest.md)
|
||||||
|
- [MixedPropertiesAndAdditionalPropertiesClass](docs/MixedPropertiesAndAdditionalPropertiesClass.md)
|
||||||
|
- [Model200Response](docs/Model200Response.md)
|
||||||
|
- [ModelApiResponse](docs/ModelApiResponse.md)
|
||||||
|
- [ModelReturn](docs/ModelReturn.md)
|
||||||
|
- [Name](docs/Name.md)
|
||||||
|
- [NumberOnly](docs/NumberOnly.md)
|
||||||
- [Order](docs/Order.md)
|
- [Order](docs/Order.md)
|
||||||
|
- [OuterComposite](docs/OuterComposite.md)
|
||||||
|
- [OuterEnum](docs/OuterEnum.md)
|
||||||
- [Pet](docs/Pet.md)
|
- [Pet](docs/Pet.md)
|
||||||
|
- [ReadOnlyFirst](docs/ReadOnlyFirst.md)
|
||||||
|
- [SpecialModelName](docs/SpecialModelName.md)
|
||||||
- [Tag](docs/Tag.md)
|
- [Tag](docs/Tag.md)
|
||||||
- [User](docs/User.md)
|
- [User](docs/User.md)
|
||||||
|
- [Cat](docs/Cat.md)
|
||||||
|
- [Dog](docs/Dog.md)
|
||||||
|
|
||||||
|
|
||||||
## Documentation for Authorization
|
## Documentation for Authorization
|
||||||
|
|
||||||
Authentication schemes defined for the API:
|
Authentication schemes defined for the API:
|
||||||
### petstore_auth
|
|
||||||
|
|
||||||
- **Type**: OAuth
|
|
||||||
- **Flow**: implicit
|
|
||||||
- **Authorizatoin URL**: http://petstore.swagger.io/api/oauth/dialog
|
|
||||||
- **Scopes**:
|
|
||||||
- write:pets: modify pets in your account
|
|
||||||
- read:pets: read your pets
|
|
||||||
|
|
||||||
### api_key
|
### api_key
|
||||||
|
|
||||||
- **Type**: API key
|
- **Type**: API key
|
||||||
- **API key parameter name**: api_key
|
- **API key parameter name**: api_key
|
||||||
- **Location**: HTTP header
|
- **Location**: HTTP header
|
||||||
|
|
||||||
|
### http_basic_test
|
||||||
|
|
||||||
|
- **Type**: HTTP basic authentication
|
||||||
|
|
||||||
|
### petstore_auth
|
||||||
|
|
||||||
|
- **Type**: OAuth
|
||||||
|
- **Flow**: implicit
|
||||||
|
- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog
|
||||||
|
- **Scopes**:
|
||||||
|
- write:pets: modify pets in your account
|
||||||
|
- read:pets: read your pets
|
||||||
|
|
||||||
|
|
||||||
## Recommendation
|
## Recommendation
|
||||||
|
|
||||||
It's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issue.
|
It's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issues.
|
||||||
|
|
||||||
## Author
|
## Author
|
||||||
|
|
||||||
apiteam@wordnik.com
|
apiteam@swagger.io
|
||||||
|
|
||||||
|
@ -99,6 +99,7 @@ ext {
|
|||||||
spring_web_version = "4.3.7.RELEASE"
|
spring_web_version = "4.3.7.RELEASE"
|
||||||
jodatime_version = "2.9.4"
|
jodatime_version = "2.9.4"
|
||||||
junit_version = "4.12"
|
junit_version = "4.12"
|
||||||
|
jackson_threeten_version = "2.6.4"
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@ -108,7 +109,6 @@ dependencies {
|
|||||||
compile "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
|
compile "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
|
||||||
compile "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
|
compile "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
|
||||||
compile "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jackson_version"
|
compile "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jackson_version"
|
||||||
compile "com.fasterxml.jackson.datatype:jackson-datatype-joda:$jackson_version"
|
compile "com.github.joschi.jackson:jackson-datatype-threetenbp:$jackson_threeten_version"
|
||||||
compile "joda-time:joda-time:$jodatime_version"
|
|
||||||
testCompile "junit:junit:$junit_version"
|
testCompile "junit:junit:$junit_version"
|
||||||
}
|
}
|
||||||
|
@ -213,14 +213,9 @@
|
|||||||
<version>${jackson-version}</version>
|
<version>${jackson-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
<groupId>com.github.joschi.jackson</groupId>
|
||||||
<artifactId>jackson-datatype-joda</artifactId>
|
<artifactId>jackson-datatype-threetenbp</artifactId>
|
||||||
<version>${jackson-version}</version>
|
<version>${jackson-threetenbp-version}</version>
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>joda-time</groupId>
|
|
||||||
<artifactId>joda-time</artifactId>
|
|
||||||
<version>${jodatime-version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
@ -236,7 +231,7 @@
|
|||||||
<swagger-annotations-version>1.5.8</swagger-annotations-version>
|
<swagger-annotations-version>1.5.8</swagger-annotations-version>
|
||||||
<spring-web-version>4.3.7.RELEASE</spring-web-version>
|
<spring-web-version>4.3.7.RELEASE</spring-web-version>
|
||||||
<jackson-version>2.8.8</jackson-version>
|
<jackson-version>2.8.8</jackson-version>
|
||||||
<jodatime-version>2.9.4</jodatime-version>
|
<jackson-threetenbp-version>2.6.4</jackson-threetenbp-version>
|
||||||
<maven-plugin-version>1.0.0</maven-plugin-version>
|
<maven-plugin-version>1.0.0</maven-plugin-version>
|
||||||
<junit-version>4.12</junit-version>
|
<junit-version>4.12</junit-version>
|
||||||
</properties>
|
</properties>
|
||||||
|
@ -24,6 +24,11 @@ import org.springframework.util.StringUtils;
|
|||||||
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;
|
||||||
|
import org.threeten.bp.*;
|
||||||
|
import com.fasterxml.jackson.datatype.threetenbp.ThreeTenModule;
|
||||||
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -303,6 +308,12 @@ public class ApiClient {
|
|||||||
*/
|
*/
|
||||||
public ApiClient setDateFormat(DateFormat dateFormat) {
|
public ApiClient setDateFormat(DateFormat dateFormat) {
|
||||||
this.dateFormat = dateFormat;
|
this.dateFormat = dateFormat;
|
||||||
|
for(HttpMessageConverter converter:restTemplate.getMessageConverters()){
|
||||||
|
if(converter instanceof AbstractJackson2HttpMessageConverter){
|
||||||
|
ObjectMapper mapper = ((AbstractJackson2HttpMessageConverter)converter).getObjectMapper();
|
||||||
|
mapper.setDateFormat(dateFormat);
|
||||||
|
}
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -551,6 +562,16 @@ public class ApiClient {
|
|||||||
*/
|
*/
|
||||||
protected RestTemplate buildRestTemplate() {
|
protected RestTemplate buildRestTemplate() {
|
||||||
RestTemplate restTemplate = new RestTemplate();
|
RestTemplate restTemplate = new RestTemplate();
|
||||||
|
for(HttpMessageConverter converter:restTemplate.getMessageConverters()){
|
||||||
|
if(converter instanceof AbstractJackson2HttpMessageConverter){
|
||||||
|
ObjectMapper mapper = ((AbstractJackson2HttpMessageConverter)converter).getObjectMapper();
|
||||||
|
ThreeTenModule module = new ThreeTenModule();
|
||||||
|
module.addDeserializer(Instant.class, CustomInstantDeserializer.INSTANT);
|
||||||
|
module.addDeserializer(OffsetDateTime.class, CustomInstantDeserializer.OFFSET_DATE_TIME);
|
||||||
|
module.addDeserializer(ZonedDateTime.class, CustomInstantDeserializer.ZONED_DATE_TIME);
|
||||||
|
mapper.registerModule(module);
|
||||||
|
}
|
||||||
|
}
|
||||||
// This allows us to read the response more than once - Necessary for debugging.
|
// This allows us to read the response more than once - Necessary for debugging.
|
||||||
restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(restTemplate.getRequestFactory()));
|
restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(restTemplate.getRequestFactory()));
|
||||||
return restTemplate;
|
return restTemplate;
|
||||||
|
@ -1,8 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Swagger Petstore
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* OpenAPI spec version: 1.0.0
|
||||||
|
* Contact: apiteam@swagger.io
|
||||||
|
*
|
||||||
|
* NOTE: This class is auto generated by the swagger code generator program.
|
||||||
|
* https://github.com/swagger-api/swagger-codegen.git
|
||||||
|
* Do not edit the class manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
package io.swagger.client.api;
|
package io.swagger.client.api;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import io.swagger.client.model.Client;
|
||||||
|
import org.threeten.bp.LocalDate;
|
||||||
|
import org.threeten.bp.OffsetDateTime;
|
||||||
|
import io.swagger.client.model.OuterComposite;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.junit.Ignore;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -12,32 +29,157 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* API tests for FakeApi
|
* API tests for FakeApi
|
||||||
*/
|
*/
|
||||||
|
@Ignore
|
||||||
public class FakeApiTest {
|
public class FakeApiTest {
|
||||||
|
|
||||||
private final FakeApi api = new FakeApi();
|
private final FakeApi api = new FakeApi();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Test serialization of outer boolean types
|
||||||
|
*
|
||||||
|
* @throws ApiException
|
||||||
|
* if the Api call fails
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void fakeOuterBooleanSerializeTest() {
|
||||||
|
Boolean body = null;
|
||||||
|
Boolean response = api.fakeOuterBooleanSerialize(body);
|
||||||
|
|
||||||
|
// TODO: test validations
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Test serialization of object with outer number type
|
||||||
|
*
|
||||||
|
* @throws ApiException
|
||||||
|
* if the Api call fails
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void fakeOuterCompositeSerializeTest() {
|
||||||
|
OuterComposite body = null;
|
||||||
|
OuterComposite response = api.fakeOuterCompositeSerialize(body);
|
||||||
|
|
||||||
|
// TODO: test validations
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Test serialization of outer number types
|
||||||
|
*
|
||||||
|
* @throws ApiException
|
||||||
|
* if the Api call fails
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void fakeOuterNumberSerializeTest() {
|
||||||
|
BigDecimal body = null;
|
||||||
|
BigDecimal response = api.fakeOuterNumberSerialize(body);
|
||||||
|
|
||||||
|
// TODO: test validations
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Test serialization of outer string types
|
||||||
|
*
|
||||||
|
* @throws ApiException
|
||||||
|
* if the Api call fails
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void fakeOuterStringSerializeTest() {
|
||||||
|
String body = null;
|
||||||
|
String response = api.fakeOuterStringSerialize(body);
|
||||||
|
|
||||||
|
// TODO: test validations
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To test \"client\" model
|
||||||
|
*
|
||||||
|
* To test \"client\" model
|
||||||
|
*
|
||||||
|
* @throws ApiException
|
||||||
|
* if the Api call fails
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testClientModelTest() {
|
||||||
|
Client body = null;
|
||||||
|
Client response = api.testClientModel(body);
|
||||||
|
|
||||||
|
// TODO: test validations
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
|
* Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
|
||||||
*
|
*
|
||||||
* Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
|
* Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
|
||||||
*
|
*
|
||||||
|
* @throws ApiException
|
||||||
|
* if the Api call fails
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testEndpointParametersTest() {
|
public void testEndpointParametersTest() {
|
||||||
BigDecimal number = null;
|
BigDecimal number = null;
|
||||||
Double _double = null;
|
Double _double = null;
|
||||||
String string = null;
|
String patternWithoutDelimiter = null;
|
||||||
byte[] _byte = null;
|
byte[] _byte = null;
|
||||||
Integer integer = null;
|
Integer integer = null;
|
||||||
Integer int32 = null;
|
Integer int32 = null;
|
||||||
Long int64 = null;
|
Long int64 = null;
|
||||||
Float _float = null;
|
Float _float = null;
|
||||||
|
String string = null;
|
||||||
byte[] binary = null;
|
byte[] binary = null;
|
||||||
Date date = null;
|
LocalDate date = null;
|
||||||
Date dateTime = null;
|
OffsetDateTime dateTime = null;
|
||||||
String password = null;
|
String password = null;
|
||||||
// api.testEndpointParameters(number, _double, string, _byte, integer, int32, int64, _float, binary, date, dateTime, password);
|
String paramCallback = null;
|
||||||
|
api.testEndpointParameters(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, string, binary, date, dateTime, password, paramCallback);
|
||||||
|
|
||||||
|
// TODO: test validations
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To test enum parameters
|
||||||
|
*
|
||||||
|
* To test enum parameters
|
||||||
|
*
|
||||||
|
* @throws ApiException
|
||||||
|
* if the Api call fails
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testEnumParametersTest() {
|
||||||
|
List<String> enumFormStringArray = null;
|
||||||
|
String enumFormString = null;
|
||||||
|
List<String> enumHeaderStringArray = null;
|
||||||
|
String enumHeaderString = null;
|
||||||
|
List<String> enumQueryStringArray = null;
|
||||||
|
String enumQueryString = null;
|
||||||
|
Integer enumQueryInteger = null;
|
||||||
|
Double enumQueryDouble = null;
|
||||||
|
api.testEnumParameters(enumFormStringArray, enumFormString, enumHeaderStringArray, enumHeaderString, enumQueryStringArray, enumQueryString, enumQueryInteger, enumQueryDouble);
|
||||||
|
|
||||||
|
// TODO: test validations
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* test json serialization of form data
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @throws ApiException
|
||||||
|
* if the Api call fails
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testJsonFormDataTest() {
|
||||||
|
String param = null;
|
||||||
|
String param2 = null;
|
||||||
|
api.testJsonFormData(param, param2);
|
||||||
|
|
||||||
// TODO: test validations
|
// TODO: test validations
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,8 @@ package io.swagger.client.api;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.*;
|
import com.fasterxml.jackson.annotation.*;
|
||||||
import com.fasterxml.jackson.databind.*;
|
import com.fasterxml.jackson.databind.*;
|
||||||
import com.fasterxml.jackson.datatype.joda.*;
|
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.datatype.threetenbp.ThreeTenModule;
|
||||||
import io.swagger.TestUtils;
|
import io.swagger.TestUtils;
|
||||||
|
|
||||||
import io.swagger.client.*;
|
import io.swagger.client.*;
|
||||||
@ -22,6 +22,9 @@ import java.util.Map;
|
|||||||
import org.junit.*;
|
import org.junit.*;
|
||||||
import org.springframework.web.client.HttpClientErrorException;
|
import org.springframework.web.client.HttpClientErrorException;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
|
import org.threeten.bp.Instant;
|
||||||
|
import org.threeten.bp.OffsetDateTime;
|
||||||
|
import org.threeten.bp.ZonedDateTime;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
@ -160,32 +163,33 @@ public class PetApiTest {
|
|||||||
assertTrue(found);
|
assertTrue(found);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
// this API is deprecated
|
||||||
public void testFindPetsByTags() throws Exception {
|
// @Test
|
||||||
Pet pet = createRandomPet();
|
// public void testFindPetsByTags() throws Exception {
|
||||||
pet.setName("monster");
|
// Pet pet = createRandomPet();
|
||||||
pet.setStatus(Pet.StatusEnum.AVAILABLE);
|
// pet.setName("monster");
|
||||||
|
// pet.setStatus(Pet.StatusEnum.AVAILABLE);
|
||||||
List<Tag> tags = new ArrayList<Tag>();
|
//
|
||||||
Tag tag1 = new Tag();
|
// List<Tag> tags = new ArrayList<Tag>();
|
||||||
tag1.setName("friendly");
|
// Tag tag1 = new Tag();
|
||||||
tags.add(tag1);
|
// tag1.setName("friendly");
|
||||||
pet.setTags(tags);
|
// tags.add(tag1);
|
||||||
|
// pet.setTags(tags);
|
||||||
api.updatePet(pet);
|
//
|
||||||
|
// api.updatePet(pet);
|
||||||
List<Pet> pets = api.findPetsByTags(Arrays.asList(new String[]{"friendly"}));
|
//
|
||||||
assertNotNull(pets);
|
// List<Pet> pets = api.findPetsByTags(Arrays.asList(new String[]{"friendly"}));
|
||||||
|
// assertNotNull(pets);
|
||||||
boolean found = false;
|
//
|
||||||
for (Pet fetched : pets) {
|
// boolean found = false;
|
||||||
if (fetched.getId().equals(pet.getId())) {
|
// for (Pet fetched : pets) {
|
||||||
found = true;
|
// if (fetched.getId().equals(pet.getId())) {
|
||||||
break;
|
// found = true;
|
||||||
}
|
// break;
|
||||||
}
|
// }
|
||||||
assertTrue(found);
|
// }
|
||||||
}
|
// assertTrue(found);
|
||||||
|
// }
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdatePetWithForm() throws Exception {
|
public void testUpdatePetWithForm() throws Exception {
|
||||||
@ -303,7 +307,11 @@ public class PetApiTest {
|
|||||||
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||||
mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
|
mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
|
||||||
mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
|
mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
|
||||||
mapper.registerModule(new JodaModule());
|
ThreeTenModule module = new ThreeTenModule();
|
||||||
|
module.addDeserializer(Instant.class, CustomInstantDeserializer.INSTANT);
|
||||||
|
module.addDeserializer(OffsetDateTime.class, CustomInstantDeserializer.OFFSET_DATE_TIME);
|
||||||
|
module.addDeserializer(ZonedDateTime.class, CustomInstantDeserializer.ZONED_DATE_TIME);
|
||||||
|
mapper.registerModule(module);
|
||||||
return mapper;
|
return mapper;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,10 +11,9 @@ import java.lang.reflect.Field;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
import org.joda.time.DateTime;
|
|
||||||
import org.joda.time.DateTimeZone;
|
|
||||||
import org.junit.*;
|
import org.junit.*;
|
||||||
import org.springframework.web.client.RestClientException;
|
import org.springframework.web.client.RestClientException;
|
||||||
|
import org.threeten.bp.OffsetDateTime;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
@ -61,7 +60,7 @@ public class StoreApiTest {
|
|||||||
assertEquals(order.getId(), fetched.getId());
|
assertEquals(order.getId(), fetched.getId());
|
||||||
assertEquals(order.getPetId(), fetched.getPetId());
|
assertEquals(order.getPetId(), fetched.getPetId());
|
||||||
assertEquals(order.getQuantity(), fetched.getQuantity());
|
assertEquals(order.getQuantity(), fetched.getQuantity());
|
||||||
assertEquals(order.getShipDate().withZone(DateTimeZone.UTC), fetched.getShipDate().withZone(DateTimeZone.UTC));
|
assertTrue(order.getShipDate().isEqual(fetched.getShipDate()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -86,7 +85,7 @@ public class StoreApiTest {
|
|||||||
Order order = new Order();
|
Order order = new Order();
|
||||||
order.setPetId(new Long(200));
|
order.setPetId(new Long(200));
|
||||||
order.setQuantity(new Integer(13));
|
order.setQuantity(new Integer(13));
|
||||||
order.setShipDate(DateTime.now());
|
order.setShipDate(OffsetDateTime.now().withNano(123000000));
|
||||||
order.setStatus(Order.StatusEnum.PLACED);
|
order.setStatus(Order.StatusEnum.PLACED);
|
||||||
order.setComplete(true);
|
order.setComplete(true);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user