58 Commits

Author SHA1 Message Date
Ella
bb00d88283
[kotlin] Fix optional header params in openhttp client (#7341)
This commit adjusts the kotlin openhttp api template to ignore null headers when building the request rather than convert them to "null" string
2020-09-16 22:09:38 -04:00
Bruno Coelho
98582d5780
[kotlin][client] fix warning Extension is shadowed by a member (#7286) 2020-08-26 11:21:40 +08:00
Nikita Karnaukh
53eff43184
[Kotlin][Client] Fix url path for Retrofit, Fix optionals for @Query @Body, Set List as default collection for Kotlin data class (#6456)
* Replace typeMapping kotlin.Array with kotlin.collections.List, because its doesn't work with Kotlin Data Classes(required manually implementing  hashCode&equals)
Replace typeMapping kotlin.Array<kotlin.Byte> with efficient primitive implementation kotlin.ByteArray
Replace instantiationTypes array to kotlin.collections.ArrayList, for extending Array we should provide element count to its constructor.

* Fixed path(removed slash on begin path) for Jvm Kotlin Retrofit

* Fixed handling optional bodyParams for Jvm Kotlin Retrofit

* Fix kotlin tests

* Fixed code format for detekt inspections #2

* revert formatting

* Added ability to generate optional @Query params.

* Update Kotlin docs.

* Update Kotlin openapi3 client samples

* Update Kotlin client samples

* Update Kotlin openapi3 client samples after merge with master

* Revert hardcoding List instead Array

* Set List as default collectionType

* Update Kotlin samples

* Fixed Kotlin multiplatform api template. fix mapper for Array type.
Fixed Kotlin multiplatform api template Code style.

* Update Kotlin multiplatform sample

* Fix Kotlin multiplatform template code style

* Update Kotlin multiplatform sample

* Fix Kotlin multiplatform converting Array to List in Api.

* Update Kotlin multiplatform sample #3

* Fix Kotlin tests

* Fix Kotlin jackson Application.kt

* Fix Kotlin tests #2

* Fix merge conflict with master

* Generate samples after merge with master

* Generate samples after merge with master #2

* Generate samples after merge with master #3

* Generate samples after merge with master #4

* update kotlin samples

* update all samples

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-06-16 10:33:34 +08:00
Bruno Coelho
ae790ea74e
[kotlin][client] remove tabs usage (#6526)
* [kotlin] remove tabs

* [kotlin][client] update pet projects
2020-06-04 21:29:08 +08:00
William Cheng
505d6e7a1c update kotlin samples 2020-05-13 17:09:34 +08:00
Bruno Coelho
ae66c335b9
[kotlin][client] make base path globally configurable (#5450)
* [kotlin][client] make base path configurable

* [kotlin][client] update pet project

* [kotlin][client] set default base path

* [kotlin][client] set default base path

* [kotlin][client] set default base path
2020-03-24 18:18:04 +08:00
Matt Traynham
6400ce2330
[kotlin][client] Add Jackson to interface properties and remove extra line feed (#5459)
* [kotlin][client] Ensure Jackson annotations are consistent with interface vars

* [kotlin][client] Rebuild samples

* [kotlin][client] Some kotlin client enhancements

- Don't use JsonFormat for Date objects, this should be controlled via
  a custom serializer/deserializer or a turning on and off serialization
  features of Jackson.  I've updated the jacksonObjectMapper config to
  write the dates as strings, which I think was intended in the original
  commit.
  https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/SerializationFeature.html#WRITE_DATES_AS_TIMESTAMPS
  https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/cfg/MapperConfig.html#getDateFormat--
- Dont' use @JsonFormat(shape = JsonFormat.Shape.OBJECT) for enums.
  This causes Enums to be formatted as objects with an internal "value"
  field.  In reality, OpenAPI enums are just strings without properties
  and should be treated as a string.
  https://www.baeldung.com/jackson-serialize-enums#2-enum-as-json-object
- Add's Kotlin use site annotation @get: to JsonProperty for parent interface
  properties.  Otherwise Kotlin will warn:
  "This annotation is not applicable to target 'member property without
  backing field or delegate'"
- Add's JsonTypeInfo annotations to interfaces for inheritance.  This
  was copied verbatim from the kotlin-spring generator.
  https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/kotlin-spring/typeInfoAnnotation.mustache

* [kotlin][client] Rebuild kotlin samples
2020-03-24 10:05:46 +08:00
Bruno Coelho
f402126460
[Kotlin][client] fix file upload (#5548)
* [kotlin] fix file upload

* [kotlin] fix file upload

* [kotlin] fix file upload

* [kotlin][client] fix jackson integration

* [kotlin] fix file upload

* [kotlin] fix file upload
2020-03-11 01:04:53 +08:00
Herve DARRITCHON
f6ef4fbec7
[kotlin][client] Add Jackson as serialization library (#5236)
* [kotlin][client] Add Jackson as serialization library

* [kotlin][client] Add kotlin-client-jackson.sh to kotlin-client-all.sh

* update kotlin client samples

* update doc

Co-authored-by: William Cheng <wing328hk@gmail.com>
2020-02-25 23:41:09 +08:00
Bruno Coelho
ffb196151f
[kotlin][client] improve debug experience (#5286)
* [kotlin][client] remove null message on server error

* [kotlin][client] avoid breaking change

* [kotlin][client] add response to client and server exceptions

* [kotlin][client] improve message on ClientException and ServerException
2020-02-16 11:00:14 -05:00
Bruno Coelho
9475556f47
[kotlin][client] respect sortModelPropertiesByRequiredFlag (#5211) 2020-02-13 18:51:38 +08:00
Matt Traynham
26c9c64634
[kotlin][client] Add inheritance to Kotlin Client templates (#4453)
* Add inheritance to Kotlin Client templates

* Correct white spacing issues

* Rebuild kotlin client samples
2020-02-01 22:12:11 -05:00
Bruno Coelho
9d53ee4b69 [kotlin][client] make Request date converter toJson as default (#4884)
* Fix for Issue #2205

Because when we have tags on OpenAPI Specification, there can be more than 1 Feign Beans being generated and the title field is share by all the clients. This makes the code to stop working in runtime.
Here is a PR which uses the classVarName instead, which follows the standards and should be enough to solve this issue.

For more info please refer to: https://github.com/OpenAPITools/openapi-generator/issues/2205

* fix java feign parameter request name (#4883)

* update sprign cloud feign sample

* [JAVA][SPRING][2195] added missing getter for enum value (#2346)

* [2195] added missing getter for enum value

* updated samples

* re-generate spring samples

* Removed @JsonValue from toString and regenerated samples

* re-generate spring samples

Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>

* update samples

* [kotlin][client] make Request date converter toJson as default

* [kotlin][client] update windows scripts

* [kotlin][client] update docs

* [kotlin][client] update scripts

* [kotlin][client] update scripts

Co-authored-by: Filipe Manuel Couto Pinheiro <filipemcpinheiro@gmail.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
Co-authored-by: Lukáš Vasek <bilaak@gmail.com>
Co-authored-by: Esteban Gehring <esteban.gehring@gmail.com>
2020-01-02 13:46:49 +08:00
Bruno Coelho
3eaafce569 [kotlin][client] Use OffsetDateTime to represente date-time received by the server (#4835)
* [kotlin] add OffsetDateTime support

* [kotlin] serializer add missing import

* [kotlin] update pet projects and fix tests

* [kotlin] update docs

* [kotlin] update pet projects

* [kotlin] update date-time

* [kotlin] update pet project

* [kotlin] update windows script
2019-12-20 23:20:02 +08:00
Bruno Coelho
9feaae8572 [kotlin][client] make serializer configurable (#4740)
* [kotlin][client] make serializer configurable

* [kotlin] update pet projects
2019-12-20 18:08:16 +08:00
Bruno Coelho
b6fd1b0ade [kotlin][client] expose http status code on errors (#4742)
* [kotlin][client] expose http status code on errors

* [kotlin] update pet projects

* [kotlin] update pet projects
2019-12-20 18:06:35 +08:00
Bruno Coelho
265ad2297b [kotlin] add options sortParamsByRequiredFlag and sortModelPropertiesByRequiredFlag (#4707)
* [kotlin] add option to sortParamsByRequiredFlag

* [kotlin] add option to sortParamsByRequiredFlag

* [kotlin][client] sort parameters in the models

* [kotlin] update docs

* [kotlin][client] simplify sortParamsByRequiredFlag implementation

* [kotlin] experiment with sortnmodel properties by name

* [kotlin] introduce sortModelPropertiesByRequiredFlag

* [kotlin] update docs

* [kotlin] update kotlin

* [kotlin] fix tests

* [kotlin] update docs

* Revert "[kotlin] update docs"

This reverts commit 88ad825de5b4c090fe04398bdfde2e9d3252742f.

* [kotlin] update docs and petstores

* [kotlin] update docs

* [kotlin] update pet projects
2019-12-20 17:42:48 +08:00
Alexander Eggers
bb93a3b1e2 [Kotlin][Client] Request date converter (#4750)
* Added new cli option to define the request date converter

* Fixed a few build errors

* Update api.mustache

* Fixed api mustache

* Removed unused import

* Fixing mustache templates

* Tweaking mustache templates

* Added sample and new bat file

TODO create new openapi 2.0 source file to simulate the datestring via schema.

* Tweaking mustache templates

* Updated templates and samples

* Fixed build error

* Updated samples

* Fixed path
2019-12-18 10:22:29 +08:00
facundomedica
2277934d5e [Kotlin] fix basic authentication compilation issue (#4772)
* Fix #4771

* update samples
2019-12-12 17:18:07 +08:00
William Cheng
05e954c8aa
prefix local variable with localVar (#4402) 2019-11-08 15:04:33 +08:00
Bruno Coelho
7cf027fbf5 [kotlin][client] gson complete integration (#4332)
* [kotlin] update dependencies

* [kotlin][client] complete gson integration

* [kotlin][client] run petstores

* [kotlin][client] fix JsonMediaType and update petstores

* Add kotlin client gson to pom.xml

* Remove org.json dependency

* Try to fix kotlin-gson build

* Add kotlin client nonpublic to pom.xml

* Update samples

* try to fix build

* try to fix build

* try to fix build

* try to fix build

* [kotlin][client] restore libraries version

* [kotlin][client] update kotlin version

* [kotlin][client] update some libraries versions

* [kotlin][client] update some libraries versions

* [kotlin][client] add kotlin-gson and kotlin-nonpublic to CI test suit

* [kotlin][client] update some libraries versions

* try to fix build

* try to fix build
2019-11-08 15:02:48 +08:00
Bruno Coelho
de9f56969d [kotlin][client] annotate api exceptions (#4339)
* [kotlin][client] annotate api call exceptions

* [kotlin][client] run petstores
2019-11-03 17:26:46 +08:00
Andrew Emery
a2b37d67c0 Kotlin query collection format (#4248)
* Fixes incorrect query header collection constants

The OpenApi codegen converts OpenApi v2 documents into an OpenApi v3
representation. The query parameter collection formats are squeezed
into different values from the raw OpenApi 2 collection format values.
For example: csv -> space
See: DefaultCodegen#getCollectionFormat

* Updates kotlin samples
2019-10-29 22:55:04 +08:00
Andrew Emery
d92d84bb12 Kotlin multiplatform auth (#4284)
* Includes support for the Javascript platform

* Fixes enum serialization with non-string values

* Updates to expose api dependencies to consumers

* Uses explicit class name for Kotlin collection classes

* Maps unknown object type to Kotlin String

The Kotlinx serialization library uses reflectionless serialization and
requires compile-time serialization declarations. As a result, unknown
objects are mapped to Kotlin String instances to enable compilation
where object types are not explicitly defined.

* Improves support for binary objects

Previously, objects that contained binary data were assigned the
InputProvider data type. This was suitable for a binary input form
parameter, but unsuitable for Base64 or octet binary strings. These
binary strings are now assigned a more suitable object.

* Includes Kotlin Multiplatform auth classes

Includes support for:
- api key
- http basic
- http bearer
- oauth (partial support)

https://github.com/OpenAPITools/openapi-generator/issues/4283

* Updates Kotlin samples
2019-10-28 16:03:49 +08:00
Bruno Coelho
620aa4fd5e [kotlin][client] only use authentication tokens when they are not null (#4238)
* [kotlin-client] only use authentication tokens when they are not null

* [kotlin-client] only use authentication tokens when they are not null
2019-10-24 00:46:46 +08:00
atetzner
ba04939c7a Fix generation of query parameters for optional/nullable function arguments (#3903)
* OpenAPITools/openapi-generator#3880 Fix generation of query parameters for optional/nullable function arguments

* OpenAPITools/openapi-generator#3880 Updated generated samples
2019-10-21 14:18:42 +08:00
Bruno Coelho
3cd74f4a8d [kotlin] add option for non public api (#4089)
* [kotlin] add option for non public api

* [kotlin] update petstores

* [kotlin] add missing script to kotlin-client-all.sh

* [kotlin] update pet projects

* [kotlin] remove public modifier

* [kotlin-client] inline visibility modifier
2019-10-10 21:56:40 +08:00
William Cheng
b69b8cdd31
[Kotlin][Client] fix missing curly bracket when the model contains enum property (#4118)
* fix kotlin okhttp3, add CI test

* update kotlin server sample
2019-10-10 18:21:50 +08:00
Jan
bbfcd3bf64 [kotlin-client][kotlin-server] Feature/kotlin data class serial version uid (#4021)
* feat: add companion object to data classes if the implement the interface java.io.Serializable

* style: format template file

* style: adapt to project's original code style

* fix: add missing imports

* style: reverted mustache template to original styling

* test: generate additional samples for kotlin-springboot-reactive and kotlin-springboot

* docs: name full qualified classname of interface java.io.Serializable to prevent confusion with kotlinx.serialization
2019-10-09 15:17:53 +08:00
oharaandrew314
682af7c4f3 Add DELETE with body to kotlin client (#4047)
* delete with body

* update petstore sample

* update kotlin-threetenbp sample

* update sample for kotlin-client-string
2019-10-09 00:10:57 +08:00
Jan
baa53cbf57 [kotlin-client][kotlin-server] feature: allow creation of kotlin data classes that implement java.io.Serializable (#3997)
* feat: allow creation of kotlin data classes that implement java.io.Serializable, by adding the config option serializableModel=(true|false)

* docs: add markdown docu for new configOption serializableModel

* fix: do not use parcelize in script

* update kotlin samples

* add the option, update the doc
2019-10-02 00:13:00 +08:00
Andrew Emery
21e0e0d5d5 Kotlin multiplatform client (#3900)
* Includes Kotlin multiplatform client

Kotlin multiplatform allows Kotlin code to be shared across various target platforms.
This implementation generates Swagger clients for JVM and iOS platforms.

* Includes Kotlin Multiplatform sample scripts

* Updates existing Kotlin samples

* Includes Kotlin Multiplatform samples

* Fixes incorrect Windows sample resource location

* Updates Kotlin client documentation

* Removes unnecessary workaround to remove duplicate entries

* Includes additional multiplatform type and import mappings

* Fixes Kotlin client definitions with multiple enums

https://github.com/OpenAPITools/openapi-generator/issues/3917

* Updates Kotlin samples
2019-09-21 21:48:41 +08:00
prisoneroftech
8f7e43b500 [Kotlin][client] Support gson and moshi as serialization libraries (#3734) 2019-08-29 05:37:13 +02:00
William Cheng
0beb8caa85
reenable kotlin client tests in shippable ci (#3751) 2019-08-25 00:53:11 +08:00
William Cheng
14a39349d5 update kotlin client sample 2019-08-22 21:43:06 +08:00
Jim Schubert
b936d72dfa
[kotlin] Change Kotlin client exceptions to expose lack of support as UnsupportedOperationException rather than NotImplementedException. (#3611)
* [kotlin] Throw catchable exceptions rather than TODO()

* [kotlin] Regenerate samples
2019-08-13 08:38:00 -04:00
Andrey
07381e7275 Fix kotlin templates (#3504)
* Fix kotlin templates to use okhttp 4.0.1.
* Fix escaping of dataType field.
* Fix handling of arrays/lists of enums.
2019-08-11 09:35:57 -04:00
Vincent Devos
d748312818 [KOTLIN client] fix Moshi (Serializer/Deserializer) duplicated (#3013) 2019-05-28 15:15:06 +08:00
Vincent Devos
c4bf6588aa [Kotlin client] Improve JSON parser (#2981)
* [Kotlin client] Improve JSON parser

* fix import in model for threetenbp date
2019-05-24 17:11:26 -04:00
kroegerama
213c015c95 improve Kotlin code quality (#2988)
* improve Kotlin code quality

* regenerate kotlin samples
2019-05-25 00:18:25 +08:00
Keiju Matsumoto
1e06d7fe88 [Kotlin] Fix parse error when using custom field names with @Json (#2944)
* Fix to use isEmpty method

* Add KotlinJsonAdapterFactory to moshi adapter

* Update petstore sample
2019-05-22 20:58:38 +09:00
William Cheng
dc0c24b955
Minor wording change (#2875)
* better wording for version of openapi doc

* update petstore samples
2019-05-13 15:59:59 +08:00
Vincent Devos
ef26ce68d4 [Kotlin] client improvement / remove WildCards in client/server (#2862) 2019-05-11 11:42:11 +08:00
William Cheng
1c1c1ef9c3
Fix Kotlin default value (#2513)
* fix kotlin default value

* fix test cases
2019-03-27 14:04:52 +08:00
Mathieu Lemoine
81c57eefd5 [BUG][Kotlin Client] API using case other than camelCase not generated properly (#2391)
* Add Json import for all data classes

* Add `@Json` annotation for data class required variables

* Add `@json` annotation for data class optional variables

* Update samples code (petstore, strings, threetenbp)

* Fix annotation to match Kotlin coding style
2019-03-27 09:59:39 +08:00
Vincent Devos
e3716262e5 [Kotlin client]fix warning when else all covered (#2470) 2019-03-22 14:40:14 +08:00
Vincent Devos
37c275b3fb [KOTLIN Client] Update to latest kotlin version (#2375)
* [KOTLIN Client] Update to latest kotlin version

gradle - okhttp3 - kotlintest version update
add some test case in sample

* [KOTLIN Client] Update to latest kotlin version

gradle - okhttp3 - kotlintest version update
add some test case in sample
2019-03-20 18:26:00 +08:00
Keiju Matsumoto
8df619ef8a [Kotlin] Add optional parameters to the method of api (#2432)
* Add optional parameters to api

* Update petstore samples

* Remove default arguments
2019-03-20 11:04:47 +08:00
William Cheng
a440396485 update kotline samples 2019-02-18 22:27:04 +08:00
Akihito Nakano
6a4f3385d8 Fix type inference error (#1773)
* Fix type inference error

* Update samples

bin/openapi3/kotlin-client-petstore.sh
bin/kotlin-client-petstore.sh

* Update samples
2018-12-29 12:14:34 -05:00