forked from loafle/openapi-generator-original
* Update Kotlin Multiplatform with Kotlin 1.5.10, Ktor 1.6.0 and Kotlinx.serialization 1.2.1 * remove @Serializable from interfaces * Using 'String(CharArray): String' is an error. Use CharArray.concatToString() instead * Fix, RequestConfig needs a type to infer type variable T Fixes from @DevSrSouzaern * Fix `private` keyword not being handle as a reservedWords * Fix enum serialization generation * Migrate gradle build to Kotlin DSL * update samples and documentation * PR Review changes * sample update * revert non multiplatform kotlinx_serialization removal * default Json{} in ApiClient * revert accidental version push for jvm client * Match ktor and Kotlinx Serialization version in documentation and build.gradle.kts * remove const from JSON_DEFAULT * Update AbstractKotlinCodegen.java Co-authored-by: Gabriel Souza <devsrsouza@gmail.com> Co-authored-by: ern <ern@ti8m.ch>
8.1 KiB
8.1 KiB
title | sidebar_label |
---|---|
Config Options for kotlin | kotlin |
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to configuration docs for more details.
Option | Description | Values | Default |
---|---|---|---|
apiSuffix | suffix for api classes | Api | |
artifactId | Generated artifact id (name of jar). | kotlin-client | |
artifactVersion | Generated artifact's package version. | 1.0.0 | |
collectionType | Option. Collection type to use |
|
list |
dateLibrary | Option. Date library to use |
|
java8 |
enumPropertyNaming | Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original' | camelCase | |
groupId | Generated artifact package's organization (i.e. maven groupId). | org.openapitools | |
library | Library template (sub-template) to use |
|
jvm-okhttp4 |
modelMutable | Create mutable models | false | |
moshiCodeGen | Whether to enable codegen with the Moshi library. Refer to the official Moshi doc for more info. | false | |
packageName | Generated artifact package name. | org.openapitools.client | |
parcelizeModels | toggle "@Parcelize" for generated models | null | |
requestDateConverter | JVM-Option. Defines in how to handle date-time objects that are used for a request (as query or parameter) |
|
toJson |
serializableModel | boolean - toggle "implements Serializable" for generated models | null | |
serializationLibrary | What serialization library to use: 'moshi' (default), or 'gson' or 'jackson' | moshi | |
sortModelPropertiesByRequiredFlag | Sort model properties to place required parameters before optional parameters. | null | |
sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. | null | |
sourceFolder | source folder for generated code | src/main/kotlin | |
supportAndroidApiLevel25AndBelow | [WARNING] This flag will generate code that has a known security vulnerability. It uses kotlin.io.createTempFile instead of java.nio.file.Files.createTempFile in oder to support Android API level 25 and bellow. For more info, please check the following links https://github.com/OpenAPITools/openapi-generator/security/advisories/GHSA-23x4-m842-fmwf, https://github.com/OpenAPITools/openapi-generator/pull/9284 |
false | |
useCoroutines | Whether to use the Coroutines adapter with the retrofit2 library. | false | |
useRxJava | Whether to use the RxJava adapter with the retrofit2 library. | false | |
useRxJava2 | Whether to use the RxJava2 adapter with the retrofit2 library. | false | |
useRxJava3 | Whether to use the RxJava3 adapter with the retrofit2 library. | false |
IMPORT MAPPING
Type/Alias | Imports |
---|---|
BigDecimal | java.math.BigDecimal |
Date | java.time.LocalDate |
DateTime | java.time.OffsetDateTime |
File | java.io.File |
LocalDate | java.time.LocalDate |
LocalDateTime | java.time.LocalDateTime |
LocalTime | java.time.LocalTime |
Timestamp | java.sql.Timestamp |
URI | java.net.URI |
UUID | java.util.UUID |
INSTANTIATION TYPES
Type/Alias | Instantiated By |
---|---|
array | kotlin.collections.ArrayList |
list | kotlin.collections.ArrayList |
map | kotlin.collections.HashMap |
LANGUAGE PRIMITIVES
- kotlin.Array
- kotlin.Boolean
- kotlin.Byte
- kotlin.ByteArray
- kotlin.Char
- kotlin.Double
- kotlin.Float
- kotlin.Int
- kotlin.Long
- kotlin.Short
- kotlin.String
- kotlin.collections.List
- kotlin.collections.Map
- kotlin.collections.Set
RESERVED WORDS
- as
- break
- class
- continue
- do
- else
- external
- false
- for
- fun
- if
- in
- interface
- internal
- is
- null
- object
- open
- package
- private
- return
- super
- this
- throw
- true
- try
- typealias
- typeof
- val
- var
- when
- while
FEATURE SET
Client Modification Feature
Name | Supported | Defined By |
---|---|---|
BasePath | ✓ | ToolingExtension |
Authorizations | ✗ | ToolingExtension |
UserAgent | ✗ | ToolingExtension |
MockServer | ✗ | ToolingExtension |
Data Type Feature
Name | Supported | Defined By |
---|---|---|
Custom | ✗ | OAS2,OAS3 |
Int32 | ✓ | OAS2,OAS3 |
Int64 | ✓ | OAS2,OAS3 |
Float | ✓ | OAS2,OAS3 |
Double | ✓ | OAS2,OAS3 |
Decimal | ✓ | ToolingExtension |
String | ✓ | OAS2,OAS3 |
Byte | ✓ | OAS2,OAS3 |
Binary | ✓ | OAS2,OAS3 |
Boolean | ✓ | OAS2,OAS3 |
Date | ✓ | OAS2,OAS3 |
DateTime | ✓ | OAS2,OAS3 |
Password | ✓ | OAS2,OAS3 |
File | ✓ | OAS2 |
Array | ✓ | OAS2,OAS3 |
Maps | ✓ | ToolingExtension |
CollectionFormat | ✓ | OAS2 |
CollectionFormatMulti | ✓ | OAS2 |
Enum | ✓ | OAS2,OAS3 |
ArrayOfEnum | ✓ | ToolingExtension |
ArrayOfModel | ✓ | ToolingExtension |
ArrayOfCollectionOfPrimitives | ✓ | ToolingExtension |
ArrayOfCollectionOfModel | ✓ | ToolingExtension |
ArrayOfCollectionOfEnum | ✓ | ToolingExtension |
MapOfEnum | ✓ | ToolingExtension |
MapOfModel | ✓ | ToolingExtension |
MapOfCollectionOfPrimitives | ✓ | ToolingExtension |
MapOfCollectionOfModel | ✓ | ToolingExtension |
MapOfCollectionOfEnum | ✓ | ToolingExtension |
Documentation Feature
Name | Supported | Defined By |
---|---|---|
Readme | ✓ | ToolingExtension |
Model | ✓ | ToolingExtension |
Api | ✓ | ToolingExtension |
Global Feature
Name | Supported | Defined By |
---|---|---|
Host | ✓ | OAS2,OAS3 |
BasePath | ✓ | OAS2,OAS3 |
Info | ✓ | OAS2,OAS3 |
Schemes | ✗ | OAS2,OAS3 |
PartialSchemes | ✓ | OAS2,OAS3 |
Consumes | ✓ | OAS2 |
Produces | ✓ | OAS2 |
ExternalDocumentation | ✓ | OAS2,OAS3 |
Examples | ✓ | OAS2,OAS3 |
XMLStructureDefinitions | ✗ | OAS2,OAS3 |
MultiServer | ✗ | OAS3 |
ParameterizedServer | ✗ | OAS3 |
ParameterStyling | ✗ | OAS3 |
Callbacks | ✗ | OAS3 |
LinkObjects | ✗ | OAS3 |
Parameter Feature
Name | Supported | Defined By |
---|---|---|
Path | ✓ | OAS2,OAS3 |
Query | ✓ | OAS2,OAS3 |
Header | ✓ | OAS2,OAS3 |
Body | ✓ | OAS2 |
FormUnencoded | ✓ | OAS2 |
FormMultipart | ✓ | OAS2 |
Cookie | ✗ | OAS3 |
Schema Support Feature
Name | Supported | Defined By |
---|---|---|
Simple | ✓ | OAS2,OAS3 |
Composite | ✓ | OAS2,OAS3 |
Polymorphism | ✗ | OAS2,OAS3 |
Union | ✗ | OAS3 |
Security Feature
Name | Supported | Defined By |
---|---|---|
BasicAuth | ✓ | OAS2,OAS3 |
ApiKey | ✓ | OAS2,OAS3 |
OpenIDConnect | ✗ | OAS3 |
BearerToken | ✓ | OAS3 |
OAuth2_Implicit | ✗ | OAS2,OAS3 |
OAuth2_Password | ✗ | OAS2,OAS3 |
OAuth2_ClientCredentials | ✗ | OAS2,OAS3 |
OAuth2_AuthorizationCode | ✗ | OAS2,OAS3 |
Wire Format Feature
Name | Supported | Defined By |
---|---|---|
JSON | ✓ | OAS2,OAS3 |
XML | ✗ | OAS2,OAS3 |
PROTOBUF | ✗ | ToolingExtension |
Custom | ✗ | OAS2,OAS3 |