v4.3.0 released
v4.3.0, the first release in 2020 containing breaking changes with fallbacks, has been released with bug fixes, enhancements, new features, new generators (powershell-experimental
, javascript-apollo
, k6
).
Thanks for the awesome community for contributing 200+ PRs to this release.
For a full list of changes, please refer to "List of all changes"
Below are the highlights of the release:
General
- [gradle] Include engine option for handlebars generation #5686
- [core] Sanitize/underscore/camelize cache expiry #5484
- [cli][gradle] Validate now uses parseOptions w/setResolve #5471
- Fix the issue with the online service #5461
- [all] Move feature set setter #5460 Breaking change (with fallback)
- [hb] Honor supporting files when applying bundles #5364
- [cli][core] Add support for dry-run and display #5332
- [templates] Update templates vendor ext standards #5295
- [codegen][validation] Add support for 'null' type #5290
- [maven] Docs and minor refactoring #5251
- [core] Log some things in model/url utils once #5233
- [codegen] Add openAPI attribute to validation and recommendation #5216
- [cli] Optional colorized outputs #5193
- [core] Normalizing vendor extension naming #5192
- [bug] fix null pointer exception while evaluating recommendation #5191
- [docs] Initial FeatureSet generator documentation #5188
- [gradle] Add recommendations to validate task #5183
- [feature] Add option to disable stripping of common prefix enum #5166
- [core] Extracting recommendations to validation framework #4979 Breaking change (without fallback)
- Better importMapping handling when aliasing references #4350
- Fix: "isAlias" of CodegenModel #2758
C
- [C][Client] Check the pointer before deleting operation to avoid core dump #5626
- [C] various bug fixes and supporting bools #5624
- [C] fix issues on enums #5477
- Support for additionalProperties in the C generator #5440
- [C-libcurl] Guard memory free for query parameters to avoid coredump #5356
C#
- [C#] add support for client certificates #5328
- [csharp-netcore] Remove use of dynamic type and optimize reference #5206
- [csharp][csharp-netcore][csharp-dotnet2] Convert bool value to string in lower case #5178
- [csharp-netcore] Explicitly set
netCoreProjectFile
only for .NET Core target #5151 - [csharp-netcore] Improved
Multimap
andClientUtils
implementation #5122 - [csharp-netcore] Remove unnecessary legacy project definitions #5108
C++
- [C++] [Qt5] CI Tests Handle negative response from the server #5649
- [C++] [Qt5] Update isSet when the object is received from callback #5634
- Added support for msvc builds in cpp-qt5-client generator #5468
- [C++] Add an option to allow having lowercase variables in models, Pistache: allow using reservedWords in models #5434
- [BUG][C++] Avoid using plain underscore when escaping reserved words #5269
- [C++] [Qt5 Server] added implementation of declared function #5253
- [C++][rest-sdk] Simplify Model templates to support nested containers, maps and bytearrays #5222
- [cpp-restsdk] fix crashes and constness #5123
Documentation
- [markdown] Fix broken links when generating markdown #5569
- [asciidoc] Allow the inclusion of additional documentation to the asciidoc generated #5260
- [bug] Templates via classpath #5164
Erlang
- [Erlang][Server] fix import for multiple API key auth #5424
- [erlang] Do not export function if not defined. #5394
Go
- [go-experimental] Fix nullable support #5414
- [Go] Fix compilation error of generated go code when schema is free form object #5391
- [go][java] Document new parameterized server support #5380
- [go] Fix filenames with $GOOS and $GOARCH sufixes #5283
- [go] Add Ptr method to const enum values #5257
- [go-experimental] Add model constructors to initialize non-container vars with defaults #5175
- [go-experimental] Add oneOf support #5150
- [go-experimental] Preserve capitalized acronyms in structure names #5006
- [Go] Support HTTP signature #4959
- [go-experimental] Support aliasing of API keys #4940
- [Golang] Add support allOf inheritance with embedded go structs #4934
Haskell
- [haskell-http-client] exclude bad time versions #5589
Java
- [jaxrs-reasteasy-eap] Fix invalid Bean Validation annotations for Longs #5659
- [jaxrs-cxf-cdi] Support PATCH httpMethod #5574
- [Java][Native] Adding Response Interceptor #5500
- Fix generation of oneOf interfaces for oneOf usage in properties #5400
- [BUG] [JAVA | Spring] Cookie in parameter is not correctly generated #5393
- [Java] mark Feign 10.x (instead of 9.x) as the default #5310 Breaking changes with fallback
- [Java][okhttp-gson] Use builder api of OkHttpClient to avoid UnsupportedOperationException #5177
- [java][client] oneOf support for jackson clients #5120
- [java] Support templated servers #4998
- [java] Support aliasing of API keys #4966
JavaScript
- Nodejs express JS packages update #5675
- Generator for JavaScript/Apollo Client #5645
- Add post-processing to NodeJS express server generator #5369
- [JavaScript] Avoid setting Content-Type header if body is not used #5344
Kotlin
- [Kotlin][client] fix file upload #5548
- [kotlin][client] Add Jackson to interface properties and remove extra line feed #5459
- [kotlin][client] make base path globally configurable #5450
- kotlin-server: fix features' imports #5404
- [Kotlin][Client] Enum toString handling #5327
- [kotlin]Fix ktor doesn't generate nullable types #5258
- [kotlin][client] Add Jackson as serialization library #5236
- [kotlin][client] make Request date converter toJson as default #4884
- [kotlin][client] Add inheritance to Kotlin Client templates #4453
K6
- [k6] OpenAPI code generator for k6 API load-testing tool (ES5.1+) #5300
Perl
- [core][typescript][perl] Ensure model.parent is also added to model.allParents with multiple inheritance #5182
PHP
- [PHP] complete support for form style #5519
- [PHP][Symfony] Add return types to getter and fluent setter #5348
- [PHP] Fix additionalProperties annotation in models #5318
- [Slim4] Add Data Mocker middleware #4978
- [PHP] Remove model prefix/suffix from inline enum var names #4489
PowerShell
- [PowerShell][Experimental] use basic parsing #5702
- [PowerShell][Experimental] Better docstring #5688
- [powershell-experimental] Adds configuration option to skip certificate check #5657
- [powershell-experimental] Protects against stackoverflow when OAS spec has circular references #5646
- [PowerShell][Experimental] Fix map type #5638
- [PowerShell][Experimental] minor improvements and bug fixes #5635
- [Powershell][Experimental] refactor the client generator #5629
Python
- [python/asyncio] explicitly close client session and asynchronous context manager #5621
- [Python-experimental] Fix UnboundLocalError: local variable 'obj_dict' referenced before assignment #5551
- [Python][Flask] Use the dataType if the baseType is not set #5372
- [Python] add discard_unknown_keys parameter #5362
- [python] Adds python oneOf/anyOf models + tests #5341
- [python] add method to set/get default configuration #5315
- [python] use datetime aware object #5209
R
- [r] Handling CRAN feedback for example snippet #5345
Ruby
- [Ruby] Fix CVE-2020-8130 #5483
- [Ruby] Add error output #5428
Rust
- [Rust Server] Don't change the API version #5458
- Fix NPE in rust server generator #5304
- Add missing keywords in rust #5244
Scala
- Scala-Akka: Add missing body to PATCH requests #5605
- Fix default value for abstract scala and scalatra server generators #5578
- [BUG][scala][template] scala generate java.math.BigDecimal instead of scala type #5514
- [scala] [template] scala model property style #5486
- [scala] strip model class name for all scala generators #5439
- [scala] new scala-sttp client generator #5429
- [scala][templates] java 8 dates support #5291 Breaking change (with fallback)
- Add support for bearer token scala-akka #5069
Swift
- [swift5] stop hiding network error #5603
- [swift5] add option for API prefix #5567
- [Swift5] fix URLSession file upload #5546
- [Swift5] small improvements to Objc compatibility #5410
- [Swift4] Expanding CodableHelper with added date and JSON customisations #3365 Breaking change (with fallback)
TypeScript
- [typescript-fetch] add interfaces, withInterfaces #5612
- typescript-angular: fix zone-js version for angular 8 #5585
- [typescript-inversify] Support nullable properties #5568
- [typescript] Clean up modelPropertyNaming across generators #5427
- Typescript-axios: add headers from configuration object #5422
- [typescript] Add ReadonlyArray to native types #5399
- typescript-angular: support angular 9 #5370
- [BUG][typescript-rxjs] Fix nully type coalescing in Configuration getters #5329
- [typescript] Remove incomplete support of Date type #5314
- typescript-angular: single request parameter documentation #5308
- typescript-fetch: Base Path can't be set to empty string #5305
- [BUG][TYPESCRIPT-RXJS] Format Date is converted to Date-Time #5287
- [typescript] Don't hardcode the date type if user has mapped it #5266
- typescript-angular: fix handling of date object in query parameter #5225
- [typescript-angular] Use security scheme name for API key lookup #5220
- [typescript] Make additional properties access safer #5207
- [typescript-angular]: objects as query parameters no longer break when fields are null #5197
- [core][typescript][perl] Ensure model.parent is also added to model.allParents with multiple inheritance #5182
- [typescript] Append enum suffix without model suffix #5138
- Fix array model of alias to array model missing inner type argument #4981