Skip to content

v4.3.0 released

Compare
Choose a tag to compare
@wing328 wing328 released this 27 Mar 03:40
· 6909 commits to master since this release
c224cf4

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 and ClientUtils 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

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