forked from loafle/openapi-generator-original
[java-client][rest-assured] add jackson support in addition to gson (#3795)
This commit is contained in:
parent
87727de079
commit
b0549fe6da
@ -55,5 +55,5 @@ sidebar_label: java
|
|||||||
|feignVersion|Version of OpenFeign: '10.x', '9.x' (default)| |false|
|
|feignVersion|Version of OpenFeign: '10.x', '9.x' (default)| |false|
|
||||||
|useReflectionEqualsHashCode|Use org.apache.commons.lang3.builder for equals and hashCode in the models. WARNING: This will fail under a security manager, unless the appropriate permissions are set up correctly and also there's potential performance impact.| |false|
|
|useReflectionEqualsHashCode|Use org.apache.commons.lang3.builder for equals and hashCode in the models. WARNING: This will fail under a security manager, unless the appropriate permissions are set up correctly and also there's potential performance impact.| |false|
|
||||||
|caseInsensitiveResponseHeaders|Make API response's headers case-insensitive. Available on okhttp-gson, jersey2 libraries| |false|
|
|caseInsensitiveResponseHeaders|Make API response's headers case-insensitive. Available on okhttp-gson, jersey2 libraries| |false|
|
||||||
|library|library template (sub-template) to use|<dl><dt>**jersey1**</dt><dd>HTTP client: Jersey client 1.19.x. JSON processing: Jackson 2.8.x. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'. IMPORTANT NOTE: jersey 1.x is no longer actively maintained so please upgrade to 'jersey2' or other HTTP libaries instead.</dd><dt>**jersey2**</dt><dd>HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.8.x</dd><dt>**feign**</dt><dd>HTTP client: OpenFeign 9.x or 10.x. JSON processing: Jackson 2.8.x. To enable OpenFeign 10.x, set the 'feignVersion' option to '10.x'</dd><dt>**okhttp-gson**</dt><dd>[DEFAULT] HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.</dd><dt>**retrofit**</dt><dd>HTTP client: OkHttp 2.x. JSON processing: Gson 2.x (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.</dd><dt>**retrofit2**</dt><dd>HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)</dd><dt>**resttemplate**</dt><dd>HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.8.x</dd><dt>**webclient**</dt><dd>HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x</dd><dt>**resteasy**</dt><dd>HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.8.x</dd><dt>**vertx**</dt><dd>HTTP client: VertX client 3.x. JSON processing: Jackson 2.8.x</dd><dt>**google-api-client**</dt><dd>HTTP client: Google API client 1.x. JSON processing: Jackson 2.8.x</dd><dt>**rest-assured**</dt><dd>HTTP client: rest-assured : 4.x. JSON processing: Gson 2.x. Only for Java8</dd><dt>**native**</dt><dd>HTTP client: Java native HttpClient. JSON processing: Jackson 2.9.x. Only for Java11+</dd><dl>|okhttp-gson|
|
|library|library template (sub-template) to use|<dl><dt>**jersey1**</dt><dd>HTTP client: Jersey client 1.19.x. JSON processing: Jackson 2.9.x. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'. IMPORTANT NOTE: jersey 1.x is no longer actively maintained so please upgrade to 'jersey2' or other HTTP libaries instead.</dd><dt>**jersey2**</dt><dd>HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.9.x</dd><dt>**feign**</dt><dd>HTTP client: OpenFeign 9.x or 10.x. JSON processing: Jackson 2.9.x. To enable OpenFeign 10.x, set the 'feignVersion' option to '10.x'</dd><dt>**okhttp-gson**</dt><dd>[DEFAULT] HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.</dd><dt>**retrofit**</dt><dd>HTTP client: OkHttp 2.x. JSON processing: Gson 2.x (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.</dd><dt>**retrofit2**</dt><dd>HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)</dd><dt>**resttemplate**</dt><dd>HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.9.x</dd><dt>**webclient**</dt><dd>HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x</dd><dt>**resteasy**</dt><dd>HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.9.x</dd><dt>**vertx**</dt><dd>HTTP client: VertX client 3.x. JSON processing: Jackson 2.9.x</dd><dt>**google-api-client**</dt><dd>HTTP client: Google API client 1.x. JSON processing: Jackson 2.9.x</dd><dt>**rest-assured**</dt><dd>HTTP client: rest-assured : 4.x. JSON processing: Gson 2.x or Jackson 2.9.x. Only for Java8</dd><dt>**native**</dt><dd>HTTP client: Java native HttpClient. JSON processing: Jackson 2.9.x. Only for Java11+</dd><dl>|okhttp-gson|
|
||||||
|serializationLibrary|Serialization library, default depends from the library|<dl><dt>**jackson**</dt><dd>Use Jackson as serialization library</dd><dt>**gson**</dt><dd>Use Gson as serialization library</dd><dl>|null|
|
|serializationLibrary|Serialization library, default depends from the library|<dl><dt>**jackson**</dt><dd>Use Jackson as serialization library</dd><dt>**gson**</dt><dd>Use Gson as serialization library</dd><dl>|null|
|
||||||
|
@ -78,7 +78,6 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
|||||||
public static final String RETROFIT_2 = "retrofit2";
|
public static final String RETROFIT_2 = "retrofit2";
|
||||||
public static final String VERTX = "vertx";
|
public static final String VERTX = "vertx";
|
||||||
|
|
||||||
public static final String SERIALIZATION_LIBRARY = "serializationLibrary";
|
|
||||||
public static final String SERIALIZATION_LIBRARY_GSON = "gson";
|
public static final String SERIALIZATION_LIBRARY_GSON = "gson";
|
||||||
public static final String SERIALIZATION_LIBRARY_JACKSON = "jackson";
|
public static final String SERIALIZATION_LIBRARY_JACKSON = "jackson";
|
||||||
|
|
||||||
@ -101,7 +100,6 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
|||||||
protected String authFolder;
|
protected String authFolder;
|
||||||
protected String serializationLibrary = null;
|
protected String serializationLibrary = null;
|
||||||
|
|
||||||
|
|
||||||
public JavaClientCodegen() {
|
public JavaClientCodegen() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
@ -134,18 +132,18 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
|||||||
cliOptions.add(CliOption.newBoolean(USE_REFLECTION_EQUALS_HASHCODE, "Use org.apache.commons.lang3.builder for equals and hashCode in the models. WARNING: This will fail under a security manager, unless the appropriate permissions are set up correctly and also there's potential performance impact."));
|
cliOptions.add(CliOption.newBoolean(USE_REFLECTION_EQUALS_HASHCODE, "Use org.apache.commons.lang3.builder for equals and hashCode in the models. WARNING: This will fail under a security manager, unless the appropriate permissions are set up correctly and also there's potential performance impact."));
|
||||||
cliOptions.add(CliOption.newBoolean(CASE_INSENSITIVE_RESPONSE_HEADERS, "Make API response's headers case-insensitive. Available on " + OKHTTP_GSON + ", " + JERSEY2 + " libraries"));
|
cliOptions.add(CliOption.newBoolean(CASE_INSENSITIVE_RESPONSE_HEADERS, "Make API response's headers case-insensitive. Available on " + OKHTTP_GSON + ", " + JERSEY2 + " libraries"));
|
||||||
|
|
||||||
supportedLibraries.put(JERSEY1, "HTTP client: Jersey client 1.19.x. JSON processing: Jackson 2.8.x. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'. IMPORTANT NOTE: jersey 1.x is no longer actively maintained so please upgrade to 'jersey2' or other HTTP libaries instead.");
|
supportedLibraries.put(JERSEY1, "HTTP client: Jersey client 1.19.x. JSON processing: Jackson 2.9.x. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'. IMPORTANT NOTE: jersey 1.x is no longer actively maintained so please upgrade to 'jersey2' or other HTTP libaries instead.");
|
||||||
supportedLibraries.put(JERSEY2, "HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.8.x");
|
supportedLibraries.put(JERSEY2, "HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.9.x");
|
||||||
supportedLibraries.put(FEIGN, "HTTP client: OpenFeign 9.x or 10.x. JSON processing: Jackson 2.8.x. To enable OpenFeign 10.x, set the 'feignVersion' option to '10.x'");
|
supportedLibraries.put(FEIGN, "HTTP client: OpenFeign 9.x or 10.x. JSON processing: Jackson 2.9.x. To enable OpenFeign 10.x, set the 'feignVersion' option to '10.x'");
|
||||||
supportedLibraries.put(OKHTTP_GSON, "[DEFAULT] HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.");
|
supportedLibraries.put(OKHTTP_GSON, "[DEFAULT] HTTP client: OkHttp 3.x. JSON processing: Gson 2.8.x. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.");
|
||||||
supportedLibraries.put(RETROFIT_1, "HTTP client: OkHttp 2.x. JSON processing: Gson 2.x (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.");
|
supportedLibraries.put(RETROFIT_1, "HTTP client: OkHttp 2.x. JSON processing: Gson 2.x (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.");
|
||||||
supportedLibraries.put(RETROFIT_2, "HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)");
|
supportedLibraries.put(RETROFIT_2, "HTTP client: OkHttp 3.x. JSON processing: Gson 2.x (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)");
|
||||||
supportedLibraries.put(RESTTEMPLATE, "HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.8.x");
|
supportedLibraries.put(RESTTEMPLATE, "HTTP client: Spring RestTemplate 4.x. JSON processing: Jackson 2.9.x");
|
||||||
supportedLibraries.put(WEBCLIENT, "HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x");
|
supportedLibraries.put(WEBCLIENT, "HTTP client: Spring WebClient 5.x. JSON processing: Jackson 2.9.x");
|
||||||
supportedLibraries.put(RESTEASY, "HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.8.x");
|
supportedLibraries.put(RESTEASY, "HTTP client: Resteasy client 3.x. JSON processing: Jackson 2.9.x");
|
||||||
supportedLibraries.put(VERTX, "HTTP client: VertX client 3.x. JSON processing: Jackson 2.8.x");
|
supportedLibraries.put(VERTX, "HTTP client: VertX client 3.x. JSON processing: Jackson 2.9.x");
|
||||||
supportedLibraries.put(GOOGLE_API_CLIENT, "HTTP client: Google API client 1.x. JSON processing: Jackson 2.8.x");
|
supportedLibraries.put(GOOGLE_API_CLIENT, "HTTP client: Google API client 1.x. JSON processing: Jackson 2.9.x");
|
||||||
supportedLibraries.put(REST_ASSURED, "HTTP client: rest-assured : 4.x. JSON processing: Gson 2.x. Only for Java8");
|
supportedLibraries.put(REST_ASSURED, "HTTP client: rest-assured : 4.x. JSON processing: Gson 2.x or Jackson 2.9.x. Only for Java8");
|
||||||
supportedLibraries.put(NATIVE, "HTTP client: Java native HttpClient. JSON processing: Jackson 2.9.x. Only for Java11+");
|
supportedLibraries.put(NATIVE, "HTTP client: Java native HttpClient. JSON processing: Jackson 2.9.x. Only for Java11+");
|
||||||
|
|
||||||
CliOption libraryOption = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use");
|
CliOption libraryOption = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use");
|
||||||
@ -155,7 +153,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
|||||||
cliOptions.add(libraryOption);
|
cliOptions.add(libraryOption);
|
||||||
setLibrary(OKHTTP_GSON);
|
setLibrary(OKHTTP_GSON);
|
||||||
|
|
||||||
CliOption serializationLibrary = new CliOption(SERIALIZATION_LIBRARY, "Serialization library, default depends from the library");
|
CliOption serializationLibrary = new CliOption(CodegenConstants.SERIALIZATION_LIBRARY, "Serialization library, default depends from the library");
|
||||||
Map<String, String> serializationOptions = new HashMap<>();
|
Map<String, String> serializationOptions = new HashMap<>();
|
||||||
serializationOptions.put(SERIALIZATION_LIBRARY_GSON, "Use Gson as serialization library");
|
serializationOptions.put(SERIALIZATION_LIBRARY_GSON, "Use Gson as serialization library");
|
||||||
serializationOptions.put(SERIALIZATION_LIBRARY_JACKSON, "Use Jackson as serialization library");
|
serializationOptions.put(SERIALIZATION_LIBRARY_JACKSON, "Use Jackson as serialization library");
|
||||||
@ -295,8 +293,8 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
|||||||
"BeanValidationException.java"));
|
"BeanValidationException.java"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (additionalProperties.containsKey(SERIALIZATION_LIBRARY)) {
|
if (additionalProperties.containsKey(CodegenConstants.SERIALIZATION_LIBRARY)) {
|
||||||
setSerializationLibrary(additionalProperties.get(SERIALIZATION_LIBRARY).toString());
|
setSerializationLibrary(additionalProperties.get(CodegenConstants.SERIALIZATION_LIBRARY).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: add doc to retrofit1 and feign
|
//TODO: add doc to retrofit1 and feign
|
||||||
@ -372,12 +370,19 @@ public class JavaClientCodegen extends AbstractJavaCodegen
|
|||||||
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);
|
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);
|
||||||
|
|
||||||
} else if (REST_ASSURED.equals(getLibrary())) {
|
} else if (REST_ASSURED.equals(getLibrary())) {
|
||||||
forceSerializationLibrary(SERIALIZATION_LIBRARY_GSON);
|
if(getSerializationLibrary() == null) {
|
||||||
|
LOGGER.info("No serializationLibrary configured, using '"+SERIALIZATION_LIBRARY_GSON+"' as fallback");
|
||||||
|
setSerializationLibrary(SERIALIZATION_LIBRARY_GSON);
|
||||||
|
}
|
||||||
|
if(SERIALIZATION_LIBRARY_JACKSON.equals(getSerializationLibrary())) {
|
||||||
|
supportingFiles.add(new SupportingFile("JacksonObjectMapper.mustache", invokerFolder, "JacksonObjectMapper.java"));
|
||||||
|
} else if (SERIALIZATION_LIBRARY_GSON.equals(getSerializationLibrary())) {
|
||||||
|
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
|
||||||
|
supportingFiles.add(new SupportingFile("GsonObjectMapper.mustache", invokerFolder, "GsonObjectMapper.java"));
|
||||||
|
}
|
||||||
additionalProperties.put("convert", new CaseFormatLambda(LOWER_CAMEL, UPPER_UNDERSCORE));
|
additionalProperties.put("convert", new CaseFormatLambda(LOWER_CAMEL, UPPER_UNDERSCORE));
|
||||||
apiTemplateFiles.put("api.mustache", ".java");
|
apiTemplateFiles.put("api.mustache", ".java");
|
||||||
supportingFiles.add(new SupportingFile("ResponseSpecBuilders.mustache", invokerFolder, "ResponseSpecBuilders.java"));
|
supportingFiles.add(new SupportingFile("ResponseSpecBuilders.mustache", invokerFolder, "ResponseSpecBuilders.java"));
|
||||||
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
|
|
||||||
supportingFiles.add(new SupportingFile("GsonObjectMapper.mustache", invokerFolder, "GsonObjectMapper.java"));
|
|
||||||
} else {
|
} else {
|
||||||
LOGGER.error("Unknown library option (-l/--library): " + getLibrary());
|
LOGGER.error("Unknown library option (-l/--library): " + getLibrary());
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,8 @@ import java.util.function.Supplier;
|
|||||||
|
|
||||||
import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
|
import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
|
||||||
import static io.restassured.config.RestAssuredConfig.config;
|
import static io.restassured.config.RestAssuredConfig.config;
|
||||||
import static {{invokerPackage}}.GsonObjectMapper.gson;
|
import static {{invokerPackage}}.{{#gson}}GsonObjectMapper.gson{{/gson}}{{#jackson}}JacksonObjectMapper.jackson{{/jackson}};
|
||||||
|
|
||||||
{{/fullJavaUtil}}
|
{{/fullJavaUtil}}
|
||||||
|
|
||||||
public class ApiClient {
|
public class ApiClient {
|
||||||
@ -42,7 +43,7 @@ public class ApiClient {
|
|||||||
public static class Config {
|
public static class Config {
|
||||||
private Supplier<RequestSpecBuilder> reqSpecSupplier = () -> new RequestSpecBuilder()
|
private Supplier<RequestSpecBuilder> reqSpecSupplier = () -> new RequestSpecBuilder()
|
||||||
{{#basePath}}.setBaseUri(BASE_URI){{/basePath}}
|
{{#basePath}}.setBaseUri(BASE_URI){{/basePath}}
|
||||||
.setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())));
|
.setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper({{#gson}}gson(){{/gson}}{{#jackson}}jackson(){{/jackson}})));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Use common specification for all operations
|
* Use common specification for all operations
|
||||||
|
@ -0,0 +1,64 @@
|
|||||||
|
{{>licenseInfo}}
|
||||||
|
|
||||||
|
package {{invokerPackage}};
|
||||||
|
|
||||||
|
{{#threetenbp}}
|
||||||
|
import org.threeten.bp.*;
|
||||||
|
{{/threetenbp}}
|
||||||
|
import com.fasterxml.jackson.annotation.*;
|
||||||
|
import com.fasterxml.jackson.databind.*;
|
||||||
|
import org.openapitools.jackson.nullable.JsonNullableModule;
|
||||||
|
{{#java8}}
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
|
{{/java8}}
|
||||||
|
{{#joda}}
|
||||||
|
import com.fasterxml.jackson.datatype.joda.JodaModule;
|
||||||
|
{{/joda}}
|
||||||
|
{{#threetenbp}}
|
||||||
|
import com.fasterxml.jackson.datatype.threetenbp.ThreeTenModule;
|
||||||
|
{{/threetenbp}}
|
||||||
|
|
||||||
|
import io.restassured.internal.mapping.Jackson2Mapper;
|
||||||
|
import io.restassured.path.json.mapper.factory.Jackson2ObjectMapperFactory;
|
||||||
|
|
||||||
|
|
||||||
|
public class JacksonObjectMapper extends Jackson2Mapper {
|
||||||
|
|
||||||
|
private JacksonObjectMapper() {
|
||||||
|
super(createFactory());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Jackson2ObjectMapperFactory createFactory() {
|
||||||
|
return (cls, charset) -> {
|
||||||
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
|
mapper = new ObjectMapper();
|
||||||
|
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||||
|
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||||
|
mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
|
||||||
|
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||||
|
mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
|
||||||
|
mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
|
||||||
|
mapper.setDateFormat(new RFC3339DateFormat());
|
||||||
|
{{#java8}}
|
||||||
|
mapper.registerModule(new JavaTimeModule());
|
||||||
|
{{/java8}}
|
||||||
|
{{#joda}}
|
||||||
|
mapper.registerModule(new JodaModule());
|
||||||
|
{{/joda}}
|
||||||
|
{{#threetenbp}}
|
||||||
|
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}}
|
||||||
|
JsonNullableModule jnm = new JsonNullableModule();
|
||||||
|
mapper.registerModule(jnm);
|
||||||
|
return mapper;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JacksonObjectMapper jackson() {
|
||||||
|
return new JacksonObjectMapper();
|
||||||
|
}
|
||||||
|
}
|
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
package {{package}};
|
package {{package}};
|
||||||
|
|
||||||
|
{{#gson}}
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
{{/gson}}
|
||||||
{{#imports}}import {{import}};
|
{{#imports}}import {{import}};
|
||||||
{{/imports}}
|
{{/imports}}
|
||||||
|
|
||||||
@ -15,6 +17,9 @@ import java.util.Map;
|
|||||||
import io.restassured.RestAssured;
|
import io.restassured.RestAssured;
|
||||||
import io.restassured.builder.RequestSpecBuilder;
|
import io.restassured.builder.RequestSpecBuilder;
|
||||||
import io.restassured.builder.ResponseSpecBuilder;
|
import io.restassured.builder.ResponseSpecBuilder;
|
||||||
|
{{#jackson}}
|
||||||
|
import io.restassured.common.mapper.TypeRef;
|
||||||
|
{{/jackson}}
|
||||||
import io.restassured.http.Method;
|
import io.restassured.http.Method;
|
||||||
import io.restassured.response.Response;
|
import io.restassured.response.Response;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
@ -24,8 +29,9 @@ import java.util.function.Consumer;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
{{/fullJavaUtil}}
|
{{/fullJavaUtil}}
|
||||||
|
{{#gson}}
|
||||||
import {{invokerPackage}}.JSON;
|
import {{invokerPackage}}.JSON;
|
||||||
|
{{/gson}}
|
||||||
import static io.restassured.http.Method.*;
|
import static io.restassured.http.Method.*;
|
||||||
|
|
||||||
@Api(value = "{{{baseName}}}")
|
@Api(value = "{{{baseName}}}")
|
||||||
@ -139,8 +145,9 @@ public class {{classname}} {
|
|||||||
* @return {{returnType}}
|
* @return {{returnType}}
|
||||||
*/
|
*/
|
||||||
public {{{returnType}}} executeAs(Function<Response, Response> handler) {
|
public {{{returnType}}} executeAs(Function<Response, Response> handler) {
|
||||||
Type type = new TypeToken<{{{returnType}}}>(){}.getType();
|
{{#gson}}Type type = new TypeToken<{{{returnType}}}>(){}.getType();
|
||||||
return execute(handler).as(type);
|
{{/gson}}{{#jackson}}TypeRef<{{{returnType}}}> type = new TypeRef<{{{returnType}}}>(){};
|
||||||
|
{{/jackson}}return execute(handler).as(type);
|
||||||
}
|
}
|
||||||
{{/returnType}}
|
{{/returnType}}
|
||||||
{{#bodyParams}}
|
{{#bodyParams}}
|
||||||
|
@ -20,7 +20,7 @@ import java.util.Map;
|
|||||||
{{/fullJavaUtil}}
|
{{/fullJavaUtil}}
|
||||||
import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
|
import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
|
||||||
import static io.restassured.config.RestAssuredConfig.config;
|
import static io.restassured.config.RestAssuredConfig.config;
|
||||||
import static {{invokerPackage}}.GsonObjectMapper.gson;
|
import static {{invokerPackage}}.{{#gson}}GsonObjectMapper.gson{{/gson}}{{#jackson}}JacksonObjectMapper.jackson{{/jackson}};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API tests for {{classname}}
|
* API tests for {{classname}}
|
||||||
@ -33,7 +33,8 @@ public class {{classname}}Test {
|
|||||||
@Before
|
@Before
|
||||||
public void createApi() {
|
public void createApi() {
|
||||||
api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
|
api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
|
||||||
() -> new RequestSpecBuilder().setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson())))
|
() -> new RequestSpecBuilder()
|
||||||
|
.setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper({{#gson}}gson(){{/gson}}{{#jackson}}jackson(){{/jackson}})))
|
||||||
.addFilter(new ErrorLoggingFilter())
|
.addFilter(new ErrorLoggingFilter())
|
||||||
.setBaseUri("{{{basePath}}}"))).{{classVarName}}();
|
.setBaseUri("{{{basePath}}}"))).{{classVarName}}();
|
||||||
}
|
}
|
||||||
|
@ -98,8 +98,15 @@ ext {
|
|||||||
swagger_annotations_version = "1.5.21"
|
swagger_annotations_version = "1.5.21"
|
||||||
rest_assured_version = "4.0.0"
|
rest_assured_version = "4.0.0"
|
||||||
junit_version = "4.12"
|
junit_version = "4.12"
|
||||||
|
{{#jackson}}
|
||||||
|
jackson_version = "{{^threetenbp}}2.9.9{{/threetenbp}}{{#threetenbp}}2.6.4{{/threetenbp}}"
|
||||||
|
jackson_databind_version = "{{^threetenbp}}2.9.9{{/threetenbp}}{{#threetenbp}}2.6.4{{/threetenbp}}"
|
||||||
|
jackson-databind-nullable-version = 0.2.0
|
||||||
|
{{/jackson}}
|
||||||
|
{{#gson}}
|
||||||
gson_version = "2.8.5"
|
gson_version = "2.8.5"
|
||||||
gson_fire_version = "1.8.3"
|
gson_fire_version = "1.8.3"
|
||||||
|
{{/gson}}
|
||||||
{{#joda}}
|
{{#joda}}
|
||||||
jodatime_version = "2.9.9"
|
jodatime_version = "2.9.9"
|
||||||
{{/joda}}
|
{{/joda}}
|
||||||
@ -113,10 +120,19 @@ dependencies {
|
|||||||
compile "io.swagger:swagger-annotations:$swagger_annotations_version"
|
compile "io.swagger:swagger-annotations:$swagger_annotations_version"
|
||||||
compile "com.google.code.findbugs:jsr305:3.0.2"
|
compile "com.google.code.findbugs:jsr305:3.0.2"
|
||||||
compile "io.rest-assured:scala-support:$rest_assured_version"
|
compile "io.rest-assured:scala-support:$rest_assured_version"
|
||||||
|
{{#jackson}}
|
||||||
|
compile "com.fasterxml.jackson.core:jackson-core:$jackson_version"
|
||||||
|
compile "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
|
||||||
|
compile "com.fasterxml.jackson.core:jackson-databind:$jackson_databind_version"
|
||||||
|
compile "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jackson_version"
|
||||||
|
compile "org.openapitools:jackson-databind-nullable:$jackson-databind-nullable-version"
|
||||||
|
{{/jackson}}
|
||||||
|
{{#gson}}
|
||||||
compile "io.gsonfire:gson-fire:$gson_fire_version"
|
compile "io.gsonfire:gson-fire:$gson_fire_version"
|
||||||
|
compile 'com.google.code.gson:gson:$gson_version'
|
||||||
|
{{/gson}}
|
||||||
{{#joda}}
|
{{#joda}}
|
||||||
compile "joda-time:joda-time:$jodatime_version"
|
compile "joda-time:joda-time:$jodatime_version"
|
||||||
compile 'com.google.code.gson:gson:$gson_version'
|
|
||||||
{{/joda}}
|
{{/joda}}
|
||||||
{{#threetenbp}}
|
{{#threetenbp}}
|
||||||
compile "org.threeten:threetenbp:$threetenbp_version"
|
compile "org.threeten:threetenbp:$threetenbp_version"
|
||||||
|
@ -11,8 +11,15 @@ lazy val root = (project in file(".")).
|
|||||||
libraryDependencies ++= Seq(
|
libraryDependencies ++= Seq(
|
||||||
"io.swagger" % "swagger-annotations" % "1.5.21",
|
"io.swagger" % "swagger-annotations" % "1.5.21",
|
||||||
"io.rest-assured" % "scala-support" % "4.0.0",
|
"io.rest-assured" % "scala-support" % "4.0.0",
|
||||||
|
{{#jackson}}
|
||||||
|
"com.fasterxml.jackson.core" % "jackson-core" % "2.9.9" % "compile",
|
||||||
|
"com.fasterxml.jackson.core" % "jackson-annotations" % "2.9.9" % "compile",
|
||||||
|
"com.fasterxml.jackson.core" % "jackson-databind" % "2.9.9" % "compile",
|
||||||
|
{{/jackson}}
|
||||||
|
{{#gson}}
|
||||||
"com.google.code.gson" % "gson" % "2.8.5",
|
"com.google.code.gson" % "gson" % "2.8.5",
|
||||||
"io.gsonfire" % "gson-fire" % "1.8.3" % "compile",
|
"io.gsonfire" % "gson-fire" % "1.8.3" % "compile",
|
||||||
|
{{/gson}}
|
||||||
{{#joda}}
|
{{#joda}}
|
||||||
"joda-time" % "joda-time" % "2.9.9" % "compile",
|
"joda-time" % "joda-time" % "2.9.9" % "compile",
|
||||||
{{/joda}}
|
{{/joda}}
|
||||||
|
@ -217,11 +217,13 @@
|
|||||||
<artifactId>rest-assured</artifactId>
|
<artifactId>rest-assured</artifactId>
|
||||||
<version>${rest-assured.version}</version>
|
<version>${rest-assured.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
{{#gson}}
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.google.code.gson</groupId>
|
<groupId>com.google.code.gson</groupId>
|
||||||
<artifactId>gson</artifactId>
|
<artifactId>gson</artifactId>
|
||||||
<version>${gson-version}</version>
|
<version>${gson-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
{{/gson}}
|
||||||
{{#joda}}
|
{{#joda}}
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>joda-time</groupId>
|
<groupId>joda-time</groupId>
|
||||||
@ -236,16 +238,69 @@
|
|||||||
<version>${threetenbp-version}</version>
|
<version>${threetenbp-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
{{/threetenbp}}
|
{{/threetenbp}}
|
||||||
|
{{#gson}}
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.gsonfire</groupId>
|
<groupId>io.gsonfire</groupId>
|
||||||
<artifactId>gson-fire</artifactId>
|
<artifactId>gson-fire</artifactId>
|
||||||
<version>${gson-fire-version}</version>
|
<version>${gson-fire-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
{{/gson}}
|
||||||
<groupId>com.squareup.okio</groupId>
|
{{#jackson}}
|
||||||
<artifactId>okio</artifactId>
|
<!-- JSON processing: jackson -->
|
||||||
<version>${okio-version}</version>
|
<dependency>
|
||||||
</dependency>
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-core</artifactId>
|
||||||
|
<version>${jackson-version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-annotations</artifactId>
|
||||||
|
<version>${jackson-version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-databind</artifactId>
|
||||||
|
<version>${jackson-databind-version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openapitools</groupId>
|
||||||
|
<artifactId>jackson-databind-nullable</artifactId>
|
||||||
|
<version>${jackson-databind-nullable-version}</version>
|
||||||
|
</dependency>
|
||||||
|
{{#withXml}}
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||||
|
<artifactId>jackson-dataformat-xml</artifactId>
|
||||||
|
<version>${jackson-version}</version>
|
||||||
|
</dependency>
|
||||||
|
{{/withXml}}
|
||||||
|
{{#joda}}
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
|
<artifactId>jackson-datatype-joda</artifactId>
|
||||||
|
<version>${jackson-version}</version>
|
||||||
|
</dependency>
|
||||||
|
{{/joda}}
|
||||||
|
{{#java8}}
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||||
|
<version>${jackson-version}</version>
|
||||||
|
</dependency>
|
||||||
|
{{/java8}}
|
||||||
|
{{#threetenbp}}
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.joschi.jackson</groupId>
|
||||||
|
<artifactId>jackson-datatype-threetenbp</artifactId>
|
||||||
|
<version>${jackson-threetenbp-version}</version>
|
||||||
|
</dependency>
|
||||||
|
{{/threetenbp}}
|
||||||
|
{{/jackson}}
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.squareup.okio</groupId>
|
||||||
|
<artifactId>okio</artifactId>
|
||||||
|
<version>${okio-version}</version>
|
||||||
|
</dependency>
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
@ -267,6 +322,14 @@
|
|||||||
{{#threetenbp}}
|
{{#threetenbp}}
|
||||||
<threetenbp-version>1.3.8</threetenbp-version>
|
<threetenbp-version>1.3.8</threetenbp-version>
|
||||||
{{/threetenbp}}
|
{{/threetenbp}}
|
||||||
|
{{#jackson}}
|
||||||
|
<jackson-version>2.9.9</jackson-version>
|
||||||
|
<jackson-databind-version>2.9.9</jackson-databind-version>
|
||||||
|
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
|
||||||
|
{{#threetenbp}}
|
||||||
|
<jackson-threetenbp-version>2.6.4</jackson-threetenbp-version>
|
||||||
|
{{/threetenbp}}
|
||||||
|
{{/jackson}}
|
||||||
<okio-version>1.13.0</okio-version>
|
<okio-version>1.13.0</okio-version>
|
||||||
<junit-version>4.12</junit-version>
|
<junit-version>4.12</junit-version>
|
||||||
</properties>
|
</properties>
|
||||||
|
@ -182,7 +182,7 @@ public class JavaClientCodegenTest {
|
|||||||
codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.yyyyy.zzzzzzz.mmmmm.model");
|
codegen.additionalProperties().put(CodegenConstants.MODEL_PACKAGE, "xyz.yyyyy.zzzzzzz.mmmmm.model");
|
||||||
codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.yyyyy.zzzzzzz.aaaaa.api");
|
codegen.additionalProperties().put(CodegenConstants.API_PACKAGE, "xyz.yyyyy.zzzzzzz.aaaaa.api");
|
||||||
codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE, "xyz.yyyyy.zzzzzzz.iiii.invoker");
|
codegen.additionalProperties().put(CodegenConstants.INVOKER_PACKAGE, "xyz.yyyyy.zzzzzzz.iiii.invoker");
|
||||||
codegen.additionalProperties().put(JavaClientCodegen.SERIALIZATION_LIBRARY, "JACKSON");
|
codegen.additionalProperties().put(CodegenConstants.SERIALIZATION_LIBRARY, "JACKSON");
|
||||||
codegen.additionalProperties().put(CodegenConstants.LIBRARY, JavaClientCodegen.JERSEY2);
|
codegen.additionalProperties().put(CodegenConstants.LIBRARY, JavaClientCodegen.JERSEY2);
|
||||||
codegen.processOpts();
|
codegen.processOpts();
|
||||||
|
|
||||||
|
@ -109,6 +109,7 @@ dependencies {
|
|||||||
compile "com.google.code.findbugs:jsr305:3.0.2"
|
compile "com.google.code.findbugs:jsr305:3.0.2"
|
||||||
compile "io.rest-assured:scala-support:$rest_assured_version"
|
compile "io.rest-assured:scala-support:$rest_assured_version"
|
||||||
compile "io.gsonfire:gson-fire:$gson_fire_version"
|
compile "io.gsonfire:gson-fire:$gson_fire_version"
|
||||||
|
compile 'com.google.code.gson:gson:$gson_version'
|
||||||
compile "org.threeten:threetenbp:$threetenbp_version"
|
compile "org.threeten:threetenbp:$threetenbp_version"
|
||||||
compile "com.squareup.okio:okio:$okio_version"
|
compile "com.squareup.okio:okio:$okio_version"
|
||||||
testCompile "junit:junit:$junit_version"
|
testCompile "junit:junit:$junit_version"
|
||||||
|
@ -225,11 +225,11 @@
|
|||||||
<artifactId>gson-fire</artifactId>
|
<artifactId>gson-fire</artifactId>
|
||||||
<version>${gson-fire-version}</version>
|
<version>${gson-fire-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.squareup.okio</groupId>
|
<groupId>com.squareup.okio</groupId>
|
||||||
<artifactId>okio</artifactId>
|
<artifactId>okio</artifactId>
|
||||||
<version>${okio-version}</version>
|
<version>${okio-version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
|
@ -23,6 +23,7 @@ import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
|
|||||||
import static io.restassured.config.RestAssuredConfig.config;
|
import static io.restassured.config.RestAssuredConfig.config;
|
||||||
import static org.openapitools.client.GsonObjectMapper.gson;
|
import static org.openapitools.client.GsonObjectMapper.gson;
|
||||||
|
|
||||||
|
|
||||||
public class ApiClient {
|
public class ApiClient {
|
||||||
public static final String BASE_URI = "http://petstore.swagger.io:80/v2";
|
public static final String BASE_URI = "http://petstore.swagger.io:80/v2";
|
||||||
|
|
||||||
|
@ -33,7 +33,6 @@ import java.util.function.Consumer;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import org.openapitools.client.JSON;
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
import static io.restassured.http.Method.*;
|
import static io.restassured.http.Method.*;
|
||||||
|
|
||||||
@Api(value = "AnotherFake")
|
@Api(value = "AnotherFake")
|
||||||
|
@ -41,7 +41,6 @@ import java.util.function.Consumer;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import org.openapitools.client.JSON;
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
import static io.restassured.http.Method.*;
|
import static io.restassured.http.Method.*;
|
||||||
|
|
||||||
@Api(value = "Fake")
|
@Api(value = "Fake")
|
||||||
|
@ -33,7 +33,6 @@ import java.util.function.Consumer;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import org.openapitools.client.JSON;
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
import static io.restassured.http.Method.*;
|
import static io.restassured.http.Method.*;
|
||||||
|
|
||||||
@Api(value = "FakeClassnameTags123")
|
@Api(value = "FakeClassnameTags123")
|
||||||
|
@ -35,7 +35,6 @@ import java.util.function.Consumer;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import org.openapitools.client.JSON;
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
import static io.restassured.http.Method.*;
|
import static io.restassured.http.Method.*;
|
||||||
|
|
||||||
@Api(value = "Pet")
|
@Api(value = "Pet")
|
||||||
|
@ -33,7 +33,6 @@ import java.util.function.Consumer;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import org.openapitools.client.JSON;
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
import static io.restassured.http.Method.*;
|
import static io.restassured.http.Method.*;
|
||||||
|
|
||||||
@Api(value = "Store")
|
@Api(value = "Store")
|
||||||
|
@ -33,7 +33,6 @@ import java.util.function.Consumer;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import org.openapitools.client.JSON;
|
import org.openapitools.client.JSON;
|
||||||
|
|
||||||
import static io.restassured.http.Method.*;
|
import static io.restassured.http.Method.*;
|
||||||
|
|
||||||
@Api(value = "User")
|
@Api(value = "User")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user