v4.2.3 released
The first release in 2020 comes with lots of enhancements, bug fixes and new generators.
New Generators
swift5
: swift 5 client generatormarkdown
: markdown documentation generator
New HTTP library support (--library
option) in the existing generators:
java
:microprofile
for Eclipse MicroProfilekotlin
:jvm-retrofit2
for Retrofit 2.x
Thanks again for all the contributions from the community.
For a full list of changes, please refer to the list below:
Here are the highlights:
General
- [gradle] Clarify defining multiple tasks #5167
- [core] Add back functionality to debug openapi spec, accidentally removed in 4.1.2 #5147
- Fixing some issues with threading and NPE #5107
- [test] Removes jmockit in favor of mockito #5063
- [CORE] Add support for HTTP signature #4993
- Use UTF-8 charset on writing files #4984
- Include vendor extensions from security scheme #4830
- [Core] Refactor: breaking allModels indexing apart from updateAllModels #4753
- [core] Minor schema validations bug + add pattern property to CodegenResponse #4724
- Add isCircularReference to properties #4553
- Support models with multi-level hierarchy (via roxspring) #4503
- [Java/Core] Adds properties to ComposedSchema models when they exist #4482
- [core] Initial FeatureSet structures #3614
Ada
- [Ada] Wrong style for generated Ada model types and missing security scopes #4863
C
- [C-libcurl] Support HTTPS/SSL for the C client #5140
- [C-libcurl] Support setting basePath and apiKeys when creating an apiClient #4960
- [C-libcurl] The JSON key name in request/response body should not be escaped even though it is a C key word #4893
- [C-libcurl] fix building error when complexType is empty #4768
- [C-libcurl] Change baseName to name to escape the field name of struct #4735
C#
- [csharp-netcore] Fixed compiler null-check warning #5119
- [csharp-netcore] Support .NET Core 3.0/3.1 and .NET Standard 2.1 #5111
- [csharp-netcore] Update RestSharp and improve async methods #5066
- [aspnetcore] Fix duplicate enums #5059
- [C#] allow customization of generated enum suffixes #4301
C++
- [C++] [Qt5] Support abort operation #5114
- [C++] [Qt5] Add request compression and handling identity #5088
- [C++] [Qt5]Add support for response compression and various enhancements #5060
- [C++][Pistache] Rename value holder to lower chance of collision with parameter name #4948
- [cpp-restbed] Added "out-of-the-box" functionality #4759
Dart
- [dart-dio] Fixes issues with DateTime import and form date paramaterToString function #4929
- [dart-dio] Fix basepath #4911
- [dart-dio] Adds support for multipart form data post body #4797
- [dart][dio] add dateLibrary options ( core, timemachine ) #4716
- [dart-dio] Fixes enum by setting the wireName to the correct value #4708
- Added Dart config parameters to fulfill pubspec requirements for publishing to pub #3911
Documentation
- Fix boolean option in asciidoc generator #4856
- [asciidoc] add option to not generate metadata #4852
- [markdown] New Markdown Generator #4811
Go
- [go] Allow user overrides for generated outputs #5132
- [go-experimental] Fix multiple go compilation errors and enable go integration test in pom.xml #5075
- [go] fix compilation error in generated go code #5061
- [go][client] fix when schema have multiple servers #4901
- [go-experimental] Use builder pattern for requests #4787
- [REQ][GO] add AWSv4 signature support #4784
- [go-experimental] Fix issue with Nullable marshaling comparing value to empty string no matter the enum type #4712
- [go] Fix multi-value path params in go #4664
- [go-experimental] Add multiple servers support to Go(-experimental) client #4635
Java
- [Java][jersey2] Escape query params before invoking api #5023
- [Java] Fixes Spring generator devaultValues for int64/float/double #4969
- [jaxrs-spec][quarkus] update to version 1.1.1.Final #4935
- [java][client] jackson update #4907
- [java] fix Jersey2 and resttemplate not correctly sending defaultCookies #4821
- [Java][Spring] Fix bean Validation for type:string, format: email #4788
- [Spring] Fix template for RequestBody, added 'required' attribute #4756
- [REQ] Java Microprofile REST Client Template #4713
- Error in the reactive client when the path variables are a list #4689
- [Java] Fix serialized name of discriminator in JSON.mustache #4672
- [Java][jersey2] Use builder pattern for requests #4666
- Fix multi-part binary array form parameters for Spring Boot and Spring Cloud templates #4616
- [Java] Additional annotations for model type (class level annotations) #4026
JavaScript/NodeJS
- [HttpBasicAuth] Use positive isBasicBasic tag instead of negative isBasicBearer #5095
- [javascript] Add npmRepository option to javascript generators #4956
- Use correct relative paths #4677
Kotlin
- Add deprecated annotation in kotlin-spring #5090
- [kotlin][client] Use OffsetDateTime to represent date-time received by the server #4835
- [kotlin][client] unify JVM libraries #4827
- [Kotlin][Client] Added new option to enable moshi code generator #4781
- [kotlin][client] expose http status code on errors #4742
- [kotlin][client] make serializer configurable #4740
- [Kotlin][Client] new library support: Retrofit 2.x #4518
- [Kotlin] enumPropertyNaming UPPERCASE should separate words with _ #4062
Python
- [Python] Fix operations with req enums of length one #5129
- [python] Cleanup ThreadPool with atexit rather than del #5094
- [Python] fix numeric enum in python flask, aiohttp #5019
- [Python-experimental] Add python experimental openapiv3 sample and fix PEP8 formatting issues #4992
- [Python] Conditionally set auth attributes #4988
- [Python] Support for HTTP signature #4958
- [python-experimental] Allow models to have properties of type self #4888
- [Python] Fix package name in tox.ini #4776
- [Python] Updates python test framework to pytest #4765
- [Python] Removes mutable default argument #4665
- [Python] Changes to the templates for test code of python client #4514
- [Python-experimental] Adds allOf/oneOf/anyOf composed models #4446
Swift
- [Swift5] return ErrorResponse.error when network parsing error #5068
- [Swift] Minor improvements to swift 5 generator #4910
- New generator swift5 #4086
PHP
- [PHP] fix php codegen ordering issue with CodegenSecurity #5001
- [Slim4] Data mocker for scalar types #4751
- [PHP] ensure rewound guzzle response body #4744
- [Slim4] Update templates to comply PSR-12 coding style #4728
- [PHP] Preserve JSON accept header #4684
MySQL
- [MySQL] snake_case table and column names #4860
PowerShell
- [PowerShell] avoid using hardcode prefix in example #4917
R
- [r] Fixing the CRAN submission issues #4828
- [r] Adding export of ApiException class #4761
- [r] fixing serialization bug in empty json array #4667
Ruby
- [Ruby] remove base_object_spec.mustache from ruby client #4918
Rust
- [Rust Server] Handle array of objects inside an object correctly #5044
- [Rust Server] Add support for primitive arrays #5041
- [Rust Server] Rust 1.39 compatibility #4864
- [Rust Server] Hyper 0.12 Support #4519
Scala
- [scala] Support for Set when array has uniqueItems=true #4926
TypeScript
- [typescript-angular] Sanitize/transform model name after appending modelSuffix #5105
- Typescript Axios returned types and export paths fixed #5102
- [typescript-angular] Fix typescript model kebab-cased filenames #5085
- [typescript-axios] Fixed call of toISOString on a string type when using string type-mapping #5057
- [typescript-node] Added ability to work with
defaultHeaders
and fixed authentication #4896 - [typescript-axios][client] Unnecessary imports occurs when using nested model in allOf #4805
- [typescript-redux-query] Add proper modeling of allOf usage #4780
- [typescript-angular] Control Accept header via param #4774
- [typescript-node]: Add support for nullable #4670
- Typescript refactor: Platform select for browser and node #4500
- [REQ][typescript-angular]: support for object as query parameters #4407
- [typescript-rxjs] performance improvements, bugfix for falsy parameters #4250