Open marcelstoer opened 6 years ago
@marcelstoer are you looking for the following commands to show the general options and language-specific option?
General: java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar help generate
Language-specific: java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar config-help -l java
No, I'm familiar with the commands (they produced the above list) but I expected the documentation to include the language-specific options.
This could also be useful https://generator.swagger.io/api/gen/clients/java
Is there an option to use specific annotations from the library for eg: For each model I wish to use Jackson annotation @JsonInclude(Include.NON_NULL) Also, if I want to use other than the specified libraries ... is that possible ?
@harshitbansal1992 Have you already resolved the issue? I really want that option to depend libraries as less as possible!
Currently this issue seems to be the best documentation on the different options for Java. Having to download a separate jar just to list the options is not an option.
Just put it into README :)
Actually there exists comprehensive documentation in another repo: https://github.com/OpenAPITools/openapi-generator/tree/master/docs/generators
The configHelp
parameter (right below configOptions
) says that it "dumps the configuration help for the specified library (generates no sources)". I've incorporated this as part of my build lifecycle so I don't need to run the jar command manually. The list of configOptions
that @marcelstoer posted gets printed as part of the build:
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>generate "configOptions" for java</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>swagger.yaml</inputSpec>
<configHelp>true</configHelp>
<language>java</language>
</configuration>
</execution>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>swagger.yaml</inputSpec>
<language>java</language>
<configOptions>
<dateLibrary>java8</dateLibrary>
</configOptions>
<library>resttemplate</library>
</configuration>
</execution>
</executions>
</plugin>
.
.
.
[INFO] --- swagger-codegen-maven-plugin:2.3.1:generate (generate "configOptions" for java) @ swagger.codegen.proof.of.concept ---
[INFO] reading from swagger.yaml
sortParamsByRequiredFlag
Sort method arguments to place required parameters before optional parameters. (Default: true)
ensureUniqueParams
Whether to ensure parameter names are unique in an operation (rename parameters that are not). (Default: true)
allowUnicodeIdentifiers
boolean, toggles whether unicode identifiers are allowed in names or not, default is false (Default: false)
modelPackage
package for generated models
apiPackage
package for generated api classes
invokerPackage
root package for generated code
groupId
groupId in generated pom.xml
artifactId
artifactId in generated pom.xml
artifactVersion
artifact version in generated pom.xml
artifactUrl
artifact URL in generated pom.xml
artifactDescription
artifact description in generated pom.xml
scmConnection
SCM connection in generated pom.xml
scmDeveloperConnection
SCM developer connection in generated pom.xml
scmUrl
SCM URL in generated pom.xml
developerName
developer name in generated pom.xml
developerEmail
developer email in generated pom.xml
developerOrganization
developer organization in generated pom.xml
developerOrganizationUrl
developer organization URL in generated pom.xml
licenseName
The name of the license
licenseUrl
The URL of the license
sourceFolder
source folder for generated code
localVariablePrefix
prefix for generated code members and local variables
serializableModel
boolean - toggle "implements Serializable" for generated models (Default: false)
bigDecimalAsString
Treat BigDecimal values as Strings to avoid precision loss. (Default: false)
fullJavaUtil
whether to use fully qualified name for classes under java.util. This option only works for Java API client (Default: false)
hideGenerationTimestamp
hides the timestamp when files were generated
withXml
whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML) (Default: false)
dateLibrary
Option. Date library to use
joda - Joda (for legacy app only)
legacy - Legacy java.util.Date (if you really have a good reason not to use threetenbp
java8-localdatetime - Java 8 using LocalDateTime (for legacy app only)
java8 - Java 8 native JSR310 (preferred for jdk 1.8+) - note: this also sets "java8" to true
threetenbp - Backport of JSR310 (preferred for jdk < 1.8)
java8
Option. Use Java8 classes instead of third party equivalents
true - Use Java 8 classes such as Base64
false - Various third party libraries as needed
useRxJava
Whether to use the RxJava adapter with the retrofit2 library. (Default: false)
useRxJava2
Whether to use the RxJava2 adapter with the retrofit2 library. (Default: false)
parcelableModel
Whether to generate models for Android that implement Parcelable with the okhttp-gson library. (Default: false)
usePlayWS
Use Play! Async HTTP client (Play WS API) (Default: false)
playVersion
Version of Play! Framework (possible values "play24", "play25")
supportJava6
Whether to support Java6 with the Jersey1 library. (Default: false)
useBeanValidation
Use BeanValidation API annotations (Default: false)
performBeanValidation
Perform BeanValidation (Default: false)
useGzipFeature
Send gzip-encoded requests (Default: false)
useRuntimeException
Use RuntimeException instead of Exception (Default: false)
library
library template (sub-template) to use (Default: okhttp-gson)
jersey1 - HTTP client: Jersey client 1.19.4. JSON processing: Jackson 2.8.9. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.
feign - HTTP client: OpenFeign 9.4.0. JSON processing: Jackson 2.8.9
jersey2 - HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.8.9
okhttp-gson - HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.8.1. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.
retrofit - HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.3.1 (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.
retrofit2 - HTTP client: OkHttp 3.8.0. JSON processing: Gson 2.6.1 (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)
resttemplate - HTTP client: Spring RestTemplate 4.3.9-RELEASE. JSON processing: Jackson 2.8.9
resteasy - HTTP client: Resteasy client 3.1.3.Final. JSON processing: Jackson 2.8.9
vertx - HTTP client: VertX client 3.2.4. JSON processing: Jackson 2.8.9
google-api-client - HTTP client: Google API client 1.23.0. JSON processing: Jackson 2.8.9
[INFO]
[INFO] --- swagger-codegen-maven-plugin:2.3.1:generate (default) @ swagger.codegen.proof.of.concept ---
[INFO] reading from swagger.yaml
.
.
.
interfaceOnly option no longer exists ???
And those System Properties
.
Is there a way to disable @Schema from generated photos?
OpenApiTools has that but swagger-codegen seems to be missing it from both java and spring language.
I recently searched high and low for a documentation of all the config options and didn't find anything. I believe this is a general problem but in my case I was interested specifically in the options for Java as I was generating with the swagger-codegen-maven-plugin. It's README says:
Yet, nowhere "below" are the options documented.
I thought about opening a PR to add the Java documentation (as follows) to the README. Maybe some guidance from @wing328 would be needed.
sortParamsByRequiredFlag
Sort method arguments to place required parameters before optional parameters. (Default: true)ensureUniqueParams
Whether to ensure parameter names are unique in an operation (rename parameters that are not). (Default: true)allowUnicodeIdentifiers
boolean, toggles whether unicode identifiers are allowed in names or not, default is false (Default: false)modelPackage
package for generated modelsapiPackage
package for generated api classesinvokerPackage
root package for generated codegroupId
groupId in generated pom.xmlartifactId
artifactId in generated pom.xmlartifactVersion
artifact version in generated pom.xmlartifactUrl
artifact URL in generated pom.xmlartifactDescription
artifact description in generated pom.xmlscmConnection
SCM connection in generated pom.xmlscmDeveloperConnection
SCM developer connection in generated pom.xmlscmUrl
SCM URL in generated pom.xmldeveloperName
developer name in generated pom.xmldeveloperEmail
developer email in generated pom.xmldeveloperOrganization
developer organization in generated pom.xmldeveloperOrganizationUrl
developer organization URL in generated pom.xmllicenseName
The name of the licenselicenseUrl
The URL of the licensesourceFolder
source folder for generated codelocalVariablePrefix
prefix for generated code members and local variablesserializableModel
boolean - toggle "implements Serializable" for generated models (Default: false)bigDecimalAsString
Treat BigDecimal values as Strings to avoid precision loss. (Default: false)fullJavaUtil
whether to use fully qualified name for classes under java.util. This option only works for Java API client (Default: false)hideGenerationTimestamp
hides the timestamp when files were generatedwithXml
whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML) (Default: false)dateLibrary
Option. Date library to usejoda
- Joda (for legacy app only)legacy
- Legacy java.util.Date (if you really have a good reason not to use threetenbpjava8-localdatetime
- Java 8 using LocalDateTime (for legacy app only)java8
- Java 8 native JSR310 (preferred for jdk 1.8+) - note: this also sets "java8" to truethreetenbp
- Backport of JSR310 (preferred for jdk < 1.8)java8
Option. Use Java8 classes instead of third party equivalentstrue
- Use Java 8 classes such as Base64false
- Various third party libraries as neededuseRxJava
Whether to use the RxJava adapter with the retrofit2 library. (Default: false)useRxJava2
Whether to use the RxJava2 adapter with the retrofit2 library. (Default: false)parcelableModel
Whether to generate models for Android that implement Parcelable with the okhttp-gson library. (Default: false)usePlayWS
Use Play! Async HTTP client (Play WS API) (Default: false)playVersion
Version of Play! Framework (possible values "play24", "play25")supportJava6
Whether to support Java6 with the Jersey1 library. (Default: false)useBeanValidation
Use BeanValidation API annotations (Default: false)performBeanValidation
Perform BeanValidation (Default: false)useGzipFeature
Send gzip-encoded requests (Default: false)useRuntimeException
Use RuntimeException instead of Exception (Default: false)library
library template (sub-template) to use (Default: okhttp-gson)jersey1
- HTTP client: Jersey client 1.19.4. JSON processing: Jackson 2.8.9. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.feign
- HTTP client: OpenFeign 9.4.0. JSON processing: Jackson 2.8.9jersey2
- HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.8.9okhttp-gson
- HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.8.1. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.retrofit
- HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.3.1 (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.retrofit2
- HTTP client: OkHttp 3.8.0. JSON processing: Gson 2.6.1 (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)resttemplate
- HTTP client: Spring RestTemplate 4.3.9-RELEASE. JSON processing: Jackson 2.8.9resteasy
- HTTP client: Resteasy client 3.1.3.Final. JSON processing: Jackson 2.8.9vertx
- HTTP client: VertX client 3.2.4. JSON processing: Jackson 2.8.9google-api-client
- HTTP client: Google API client 1.23.0. JSON processing: Jackson 2.8.9