Skip to content

Releases: OpenAPITools/openapi-generator

v4.2.3 released

31 Jan 09:26
26ace13
Compare
Choose a tag to compare

The first release in 2020 comes with lots of enhancements, bug fixes and new generators.

New Generators

  • swift5: swift 5 client generator
  • markdown: markdown documentation generator

New HTTP library support (--library option) in the existing generators:

Thanks again for all the contributions from the community.

For a full list of changes, please refer to the list below:

List of all changes

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

v4.2.2 released

02 Dec 05:13
f9662e0
Compare
Choose a tag to compare

v4.2.2, which is a backward-compatible release covering 20 languages, is the last release in 2019. It comes with 1 new generator: typescript-redux-query. We appreciate all the contributions from the community and look forward to more contributions from the awesome community in 2020.

For a full list of changes, please refer to the list below:

List of all changes

Here are the highlights:

General

  • Add net.java.dev.jna to resolve "Unable to load JNA library" #4634
  • Add openapi-generator executable to docker container #4610
  • Update kotlin version to 1.3.60 in modules/openapi-generator/pom.xml #4598
  • Maintains state of hasMore when security is filtered #4585
  • Fix isNullable in the toString method #4554
  • Update swagger parser to the latest stable version v2.0.16 #4550
  • Fix: prevent ClassCastException when handling options of #4495
  • [default codegen] Correct parent variables being duplicated in child #4253

AsciiDoctor

  • [asciidoctor] javadoc: add missing tag for declared exception #4630
  • [asciidoc] add form params and authorization headers #4505

C

  • [C] better support for additional properties #4349

C#

  • [csharp-netcore][documentation]: Adding model summary to model documentation files #4309

C++

  • [C++][Pistache] Add comparison operators #4619
  • cpp-qt5-client: fix warning reordering member initialization #4526
  • [C++] [Qt5] Clang format Code #4444

Dart

  • Add HEAD method to ApiClient of dart codegen #4504
  • [dart-dio] correctly handle Map<String, Object>, List<Object> using JsonObject #4401

Elm

  • [elm] Add support for oneOf #4434

Go

  • Add go.mod as supporting files to go-server #4592
  • Add support for dumping request and response in Go generated clients #4566
  • Add an option to prefix Go struct with the classname #4564
  • [Go] Bypass object decode in case of empty body #4546
  • [Java][Go] Unalias schema in getTypeDeclaration when not generating model for alias #4527

Haskell

  • [FIX][Haskell-servant] missing indent on the new feature pull request #4490
  • [FEATURE][Haskell] Haskell-Servant serves static files #4058
  • [FEATURE][Haskell] Add Middleware support for the haskell servant generator #4056

Kotlin

  • [Kotlin-spring] add kotlin runtime compiler #4544
  • Fixes Kotlin client property names that include a dollar sign for template overrides #4351
  • Add mutable model option to kotlin generators #4115
  • [kotlin-spring] add support for the delegate pattern #3925

Java

  • [java][client][restassured] add getAllOperations() #4631
  • [jaxrs-spec][quarkus] update to 1.0.0.FINAL #4609
  • [Java][Spring] minor bug fix on unhandledException flag #4543
  • [JAVA] Update Gradle in generated Java projects from 2.14.1 to 6.0.1 #4536
  • [Java][Go] Unalias schema in getTypeDeclaration when not generating model for alias #4527
  • [java] Fix java version defaulting #4520
  • [BUG] [Java] Client resttemplate and webclient. Form Params are badly added when they are lists #4461
  • Avoid generating uncompilable response body in Spring's API template #2903

JavaScript

  • [JS] Update package.json #4261

OCaml

  • [OCAML] Fixes cloud.drone.io ocaml-test #4501

PHP

  • [BUG][PHP] Parameter property style not fully implemented #4640
  • [PHP] Include microseconds in serialized date-time #4542

Python

  • [Python] each Configuration instance now has its own dicts #4485

R

  • [BUG][R] use loadNamespace instead of package:pkgName string #4614
  • [BUG][R] Fix documentation in R package #4580

Ruby

  • [Ruby] delete unused mustache in ruby-client #4638
  • [Ruby] Fix typo in description #4624

Rust

  • [Rust] Derive more traits #4142
  • [Core, Rust Server, ASP.NET Core] Fix Codegen Operation Scope Consistency #3495

Scala

  • Fixes issues with Scalaz outputs #4508

Swift

  • [Swift] Fix enum encodable #4594
  • [Swift] Add option parameter to select response queue #4591
  • [CI][Swift4] improve swift ci integration #4571
  • [swift 4] improve test suite #4561
  • [swift] add option for non public api #4556
  • [Swift] Enhancements to iOS tests #4521
  • [swift] Introduce result type #4511
  • [Swift] Convert default value of enum with not string type to string #4481

TypeScript

  • typescript-node: support bearer token authentication #4633
  • [typescript-rxjs][client] Unnecessary imports occurs when using allOf #4632
  • [TS] replace line comment with block comment #4540
  • New generator: typescript-redux-query #3824

v4.2.1 released

15 Nov 08:45
2683dd4
Compare
Choose a tag to compare

v4.2.1 (patch release) covers more than 10 languages with 50+ PRs. For a full list of changes, please refer to the list below:

List of all changes

Here are the highlights:

General

  • [core] Fix system properties being immutable #4447
  • [ci] Setting ensure-up-to-date to use batch option in CircleCI #4445
  • [cli][script] Fix misspelling in cli bootstrapping script #4356
  • Remove deprecated API use of ObjectFactory.property() (#2613) #4352
  • [core] consider polymorphism when computing unused schemas #4335
  • [asciidoc] fix names of parameters #4440

C

  • [C] Minor enhancement to C client generator #4457

C#

  • [csharp-netcore] Propagate raw content to the ApiException error content #4381
  • [Feature] emit default values for optional properties #4347
  • csharp-netcore: Replace null literals with default #4345

C++

  • Simpler timeout with QTimer::singleShot #4430
  • cpp qt5 client: fix prefix bug #4432
  • cpp-qt5-client: remove host since it is not well handled #4429
  • [C++][Pistache] update cpp flag for pistache #4386
  • [C++] [Qt5]Update isSet when the object is received from callback #4385
  • Fix cpp-restbed-server json field serialization #4323

Dart

  • [Dart] generate keywords as a resource #4449

Go

  • [go-server] Add featureCORS option #4400

Kotlin

  • [Kotlin][Client] Add option to make all api method return a nullable model #4422
  • [kotlin][bugfix] [maven-plugin]: prevent ClassCastException with boolean config options #4361
  • [kotlin][client] annotate API exceptions #4339
  • [kotlin][client] gson complete integration #4332
  • [meta] Support Kotlin meta generator #4156

Java

  • [Java] Recursive equal on reflection #4475
  • Replace the old ResourceSupport #4426
  • [Java][native] Re-interrupt the thread in the generated code #4382
  • [Java][resttemplate][webclient] fix array parameters of type integer in path #4379
  • Fix Jackson databind security issue #4370
  • [jaxrs-spec][quarkus] update to 0.27.0 #4360
  • Bugfix and Refactor on Java-Vertx-Web parameters #4353
  • [Java] Fix security alerts due to com.fasterxml.jackson.core:jackson-databind #4344
  • [Java][Spring] forward throws for delegate to main method #4327
  • [Java] Refactor webClient generator to use URI templates to capture correct metrics #4314

JavaScript

  • [Javascript][Flowtyped] Adding parent flow type to child type using "& ParentType" to allow flow JS access parent fields from child types #4263

Python

  • [Python-Experimental]: Remove redundant else statement #4324
  • [python][metadata] Adding license and author fields #4318
  • [Python] Avoid pep8 violation #4316
  • [Python] [Performance] Avoid unnecessary checks inside the loop #4305

Ruby

  • [Ruby][client] better nullable support #4391

TypeScript

  • feature: Typescript-angular support single request param #4479
  • typescript-fetch: Only generate npm package if npmName specified #4472
  • [typescript-rxjs]: Add support for nullable #4438
  • [typescript-fetch] Add (de)serializers for oneOfs #4387
  • typescript-angular: fix oneOf and anyOf generates incorrect model for primitive types #4341
  • [typescript-fetch] Fix discriminator mapping name #4340
  • [typescript-angular] do not call .toISOString() on a string #4337
  • [typescript-fetch] Fix for nullable enums + separate treatment of null and undefined #4315

v4.2.0 released

31 Oct 03:45
34070bd
Compare
Choose a tag to compare

v4.2.0 (containing breaking changes with fallbacks) comes with 3 new generators: dart-dio, php-slim4, java-vertx-web. As always, we're very grateful for the contributions from the awesome community.

List of breaking changes with fallbacks

List of all changes

Below is the summary:

General

  • [docs] Custom template clarifications and other minor enhancements #4167
  • [core] Update Swagger-Parser to '2.0.15' #4145
  • Sanitizes model names so they're valid class/interface names #4127
  • Fix readonly with isReadOnly #4102
  • Serializer object mapper setting fix #4093
  • Remove unused property (SecuritySchemeDefinition) #4081
  • Add style and explode #4042
  • [CLI] Initial implementation for batch generation #3789

Avro

  • Fix file type in avro template #4105
  • [AVRO] Fix the package handling for the avro generator #4078

Bash

  • [Bash] Minor improvements #4274

C

  • [C] Update build-and-test.bash to fix CI errors #4312

C#

  • [C#][NetCore] Rename local variables #4297
  • Deprecated netstandard, uwp support in csharp generator #4214
  • [CSharp] add optional flag "optionalEmitDefaultValues" and update template #4010

C++

  • [C++] Enable Qt5 Petstore tests #4164
  • [C++] [Qt5] Add generation of cmake files to qt5 client #4133
  • [C++] [Qt5] Add missing supporting files when prefix is provided #4132
  • [C++][Pistache] Use optional when required #4082

Confluence wiki

  • Fix Confluence wiki format issue #4064

Dart

  • [dart-dio] Correctly handles import of Uint8List #4313
  • [Dart] [Bug] Handle model names starting with number #4276
  • Fix conflict if paramName is data #4266
  • fix(dart-dio): enum class generation is not implemented #4235
  • Adds Dart Dio generator #4018

Elm

  • [elm] fix code generation for nullable types #4136
  • Fix NPE in Elm path parameter #4116
  • [elm] Add toString for all types #3983

Go

  • [go-server] Return Router interface from controller constructor #4196
  • Fix boolean operators precedence #4158
  • [Go] Upgrade dependencies #4126
  • [Go] Fix go.mod and go.sum for 1.13 #4084
  • [Go] Fix enum value which is not string #4077
  • [go-server] Enhance Go API server with interfaces router binding and services #4038
  • [go-experimental] export required fields without pointer #3989
  • [Golang] Allow retrieving the underlying configuration for APIClient #3976
  • Do not check status code for default response #3322

Haskell

  • [FEATURE][Haskell] Haskell-Servant serves static files #4058
  • [FEATURE][Haskell] Add Middleware support for the haskell servant generator #4056
  • [haskell-http-client] Bump deps to LTS 14.7 #4068
  • [haskell-http-client] add dateTimeParseFormat CLI option - overrides the format string used to parse a datetime #4037
  • [haskell-http-client] disable unused import warning in Core.hs #4020
  • Fix trailing comma wrong in template for haskell-http-client #4013

Java

  • Implement Server Stub Code for Vert.x Web #4286
  • Add bearer token authentication documentation to template #4278
  • okhttp-gson: fix SSL settings with okhttp3 #4226
  • [jaxrs-spec][quarkus] update to 0.25.0 #4185
  • Update to jackson-datatype-threetenbp 2.9.10 #4176
  • [Java] Support cookie-based security schemas in Java clients #4155
  • [Java] fix jackson-databind-nullable version variable due to Gradle Incompatibility (Template Update) #4148
  • [JaxRS-Java] use @FormParam for form parameters when it is not Multipart #4125
  • [Java] fix jackson-databind-nullable version variable due to Gradle Incompatibility #4092
  • [jaxrs-spec][quarkus] update to 0.23.2 and fixes for Dockerfile #4053
  • Make Java Resttemplate client thread safe by using the withHttpInfo pattern (Breaking change (with fallback)) #4049
  • [java][client] Fix regression in Java XML serialization #4023
  • [java] Don't import oltu when not necessary #3950
  • [java][client] Don't include nullable attributes twice in serialized JSON #3923
  • [java] allow to use setArtifactVersion() programmatically #3907
  • [JAVA][JAXRS] Fix parameters validation #3862
  • [Java][Fix #3310] Respect discriminator case for @JsonTypeInfo #3320

JavaScript

  • [JavaScript][ES6] Added a check if response is undefined #4298

Kotlin

  • [Kotlin][multiplatform] better authentication support #4284
  • Fix Kotlin query collection format #4248
  • [Kotlin] Add kotlin.collections.Set support for unique item arrays #4247
  • [kotlin][client] only use authentication tokens when they are not null #4238
  • Fixes Kotlin client property names that include a dollar sign #4229
  • [Kotlin][client] Add nullable query parameter support #4197
  • Update to jackson-datatype-threetenbp 2.9.10 #4176
  • [Kotlin][Client] fix missing curly bracket when the model contains enum property #4118
  • [kotlin] add option for non public API #4089
  • Add DELETE with body to kotlin client #4047
  • [kotlin-client][kotlin-server] kotlin data class serial version uid #4021
  • [kotlin-client] Add support okhttp3 and Android 4.x #4008
  • Fix generation of query parameters for optional/nullable function arguments #3903

PHP

  • Mark Slim3 server generator as deprecated #4256
  • New PHP Slim4 Server Generator #3658

PowerShell

  • Update API and model path when packageName is updated #4108
  • Fix nullable for arrays and complex types #4106

Python

  • [Python] Remove redundant else statement #4311
  • Python: Flask: Fix: Update setup.py to match requirements.txt #4205
  • [Python] Minor fix to code format #4172
  • [python] Remove post_params and body from OPTIONS request #4163
  • [python] Skip adding None value in query parameters #4161
  • [Python-experimental] types now classes, adds additionalProperties handling #4154
  • [python] Add ability to get allowed values #4138
  • [python] Add option to skip client validations #4137
  • [python] Add missing keywords python #4134
  • Test Python aiohttp first in Travis #4117
  • Fixed Readonly Docs for python #4085

R

  • [r][license]: Better license and contact information #4317

Rust

  • [Rust] Better support for optional and nullable parameters #4016
  • [Rust] Add support for discriminator #3895
  • [Rust Server] Support parameters correctly in response headers #3669
  • [Rust Server] Support types with additional properties #3666
  • [rust] Make it easier to test rust client generator #3543

Swift

  • [swift] Add missing keywords in Swift #4153
  • [swift4] Add swift package manager and update dependencies #4141

TypeScript

  • [TS] Fixes typescript-axios "File custom.d.ts not found" when building consumer TS project #4230
  • typescript-angular: Allow for custom naming of ApiModule #4209
  • [typescript-rxjs] improve HttpQuery typing #4198
  • typescript-rxjs: fix query parameters type #4160
  • [typescript-inversify] Fix multipart form uploads #4131
  • Disabling linting for typescript-fetch #4110
  • typescript-fetch: fix empty URLSearchParams request body #4103
  • [typescript-axios] Fix api generating incorrect serialization type check #4051
  • typescript-jquery: Update to work with Typescript strict mode #3969
  • typescript-angular: set angular version 8 as default for ngVersion (Breaking change (with fallback)) #3680

v4.1.3 released

04 Oct 05:54
f955966
Compare
Choose a tag to compare

v4.1.3 (last patch release before the upcoming minor release v4.2.0) comes with 4 new generators:

  • asciidoc markup generator #3845
  • Add F# Functions server generator #3933
  • [Kotlin][server] Add kotlin-vertx-server #3031
  • Add Nim client code generator #3879

As always we're grateful for all the contributions by the awesome community.

General

  • Update mockito to 3.1.0 #4035
  • [FIX][CORE] Repaired Checkstyle #4029
  • Update maven-compiler-plugin version #3956
  • Fix jackson-databind security issue #3945
  • Add a global option to customize the API name suffix #3918
  • Add gradle repository for using gralde dependency in plugin #3867

AsciiDoc

  • asciidoc markup generator #3845

C++

  • [C++] [rest-sdk] Add missing enum processing in C++ Abstract codegen #3986
  • [C++] [Pistache] Removed deprecated warnings #3985
  • [C++] [cpprest] Fixed wstring on linux #3892
  • [C++] bug fix for ishttpcontent not set properly #3888
  • [C++] [Qt5] Add initial version of File upload and download for Qt5 client #3853
  • [C++][Pistache] Simplified model template #3417

F#

  • Add F# Functions server generator #3933

Dart

  • Dart fix template tests #4015
  • Change Uint8list by List because it cause trouble with last versions of jaguar #3871

Go

  • go: add os import in case of File return type #3996
  • Import time when properties are slices of time.Time #3973
  • Support Multiple API Keys #3450

Java

  • [Java][Client][Feign] fix a bug when encoding query parameters using a parameter map #3948
  • [jaxrs-spec] add Eclipse MicroProfile file based approach #3901
  • updated google-api-client version from 1.23.0 to 1.30.2. #3882
  • java-spring: Spring Boot fails to parse LocalDate query parameter #3860
  • [spring] Resolve regression on RequestParam for non-objects #3855

Kotlin

  • [kotlin] mark 'parcelize' as a stable option #4003
  • [kotlin-client][kotlin-server] feature: allow creation of kotlin data classes that implement java.io.Serializable #3997
  • Fixes invalid Kotlin client variable names for reserved words #3993
  • [Kotlin] add multiplatform support #3900
  • [Kotlin][server] Add kotlin-vertx-server #3031

Nim

  • Add Nim client code generator #3879

PHP

  • [PHP] Correctly format JSON in headers #4024
  • Fix wrong variable name in LessThan and LessThanOrEqual asserts #3971

Scala

  • [scala][akka] Removed hardcoded baseUrl #3964
  • [scala] add [date-time] field to codegen unit test #3939
  • [scala][client] ScalaAkkaClientCodegenTest: refactor assertions #3893

Swift

  • [Swift4] update swift4 samples with swiftlint, update test scripts #4009
  • [swift4] update Alamofire from 4.7.0 to 4.9.0 #3999
  • [Swfit4] better support for type=string, format=number #3910

TypeScript

  • typescript-node: Add options to specify a form data file #3967
  • typescript-fetch: fix return type of primitive value #4028
  • [typescript][node]: Add accept header if produces is not empty #3966
  • typescript-fetch: Add application/x-www-form-urlencoded content support #3934
  • typescript-node: Fix cookie auth, fix multiple API key auth #3927
  • [typescript][fetch] Fix null typing errors #3919
  • typescript-fetch: fix missing comma in multiple imports #3881
  • typescript-node: Use HttpError class when rejecting promises #3876

v4.1.2 released

11 Sep 10:35
3ebefcc
Compare
Choose a tag to compare

Another bi-weekly patch release. v4.1.2 comes with a new generator to convert OpenAPI (v2, v3) into Protobuf schemas & gRPC service definition to help with the migration from REST APIs to gRPC services.

For a full list of changes, please refer to the Pull Request page. Below are the highlights:

General

  • Fix remote spec handling and hash calculation #3826
  • [core] do not always cast to ArraySchema #3780
  • [Maven plugin] Allow configuring User-Agent via maven plugin, update readme #3777
  • [core] [regression] set parentName when a single possible parent exists #3771
  • [core] change JSON serialisation to be deterministic #3763
  • Support custom git repository #3757

C++

  • [C++][Pistache] Add missing setter for arrays #3837

C#

  • [C#] [netcore] Add missing files to the form request #3834
  • Fix warnings in the csharp-netcore client #3831

Dart

  • Adds Http Info To Dart Api #3851
  • [Dart] Fix README template and update testing doco #3809
  • [Dart] Don't create redundant samples #3800
  • Fix Dart2 default template #3790
  • Add flutter web support on jaguar dart #3786
  • Fix dart2 custom templates #3656
  • Manage enum properly on Dart Jaguar generator #3654

Haskell

  • [haskell-http-client] bump deps to LTS 14.3 #3762

Go

  • [client][go] Avoid duplicated reflect imports #3847

Java

  • [Java][okhttp-gson] fix failure to deserialize floats #3846
  • Fixed bug where nullApi.java is generated instead of DefaultApi.java #3821
  • [java-client][rest-assured] add jackson support in addition to gson #3795
  • [java] add jackson-databind-nullable dependency to the gradle.build file #3793
  • [java-client][java-jaxrs-server][jackson] Add @JsonPropertyOrder to models #3778
  • [java] fix ClassCastException in toDefaultValue() #3765
  • [java][client] Add a "serializationLibrary" option #3759

JavaScript

  • Fix regexp fails on Windows because of backslashes in the path #3802

Kotlin

  • [Kotlin][client] Support gson and moshi as serialization libraries #3734

Protobuf

  • Add gRPC Protobuf schema generator #3818

TypeScript

  • typescript-axios: Fix base options #3866
  • typescript-inversify: improve check for required parameters, support multiple media types #3849
  • typescript-fetch: add option for TypeScript 3.6+ compatible generation #3801
  • typescript-angular: Set Content-Type for multipart requests in angular #3779
  • [typescript-fetch] fix serialization/deserialization with inheritance #3767
  • [typescript-rxjs] support HEAD method, improve formatting #3766
  • [typescript-axios] @ts-ignore possible unused imports #3742
  • [typescript-angular] allow empty string basePath #3489

v4.1.1 released

26 Aug 08:00
197294a
Compare
Choose a tag to compare

v4.1.1 (patch release) comes with 90+ PRs from the community. Thank you.

For a full list of changes, please refer to the Pull Request page. Below are the highlights:

General

  • [core] Set isMultipart=true for multipart operations, fix possible NPE #3750
  • Better support for multipart #3736
  • [core] process TRACE operation #3648
  • Fix imports and property name when using anyof/oneof in services #3639
  • autoupdating generator script: userdef cache dir #3631
  • Fix composed properties missing from allVars #3616
  • Fix callback request and response not being flattened to InlineObjects #3398
  • [CLI][GENERATOR] NullPointer when not setting outputDir (updated) #3752
  • [maven] Support user overrides for serverVariables (carryover from #3363) #3609
  • [cli][gradle] filter deprecated generators by default when listing available generators #3612
  • [core][maven][gradle] User-defined server variable substitutions #3363
  • Update to swagger-parser to 2.0.14-OpenAPITools.org-1 #3737
  • Update Mockito to the latest stable version 3.0.0 #3732

Avro Schema

  • Minor enhancements to the Avro schema generator #3728
  • Add new Apache Avro schema generator #3662

C++

  • cpp-qt5-client: Improve tests #3667
  • cpp-qt5-client: add valgrind memory test #3663
  • cpp-qt5-client: fix memory leak in api-body #3661

C#

  • [csharp] Update UserAgent in the async version of ClientAPI execute method #3723
  • [csharp-netcore] Making HTTP response headers dictionary case-insensitive #3707
  • [aspnetcore] Fix nullable enum and duplicate model #3622
  • [aspnetcore] Add max/min length attributes for models #3588
  • [aspnetcore] Add TypeConverter for enum string conversion #3557

Dart

  • [Dart] Avoid redundant null checking in fromJson #3632
  • [Dart] Make clients crossplatform #3608
  • [Dart Jaguar] manage nullable definition #3599

Go

  • [Go] add option to use class as enum prefix #3675
  • Guarantee a unique name for the constants that represent enum values #3644
  • [Go] URLEncode path parameters #3643
  • Import Go package with leading underscore #3634
  • [Golang][Client] Fix collectionFormat=multi request bug #3390

Java

  • [java][client][java11-native] Https protocol schema is not handled correctly in java 11 native code #3730
  • [java][client][resteasy] support bearer authentication #3706
  • [java][client][resteasy][jersey2][google-api-client][okhttp-json] several fixes to make sent requests more accurate #3703
  • [java][client][vertx] Two tiny fixes for Java Vertx client #3683
  • [java][client][java11-native] Use javax.annotation.processing.Generated for Java 11 native client #3637
  • [java][client] set collection to null when not required #3615
  • [java][client] make it possible to send explicit nulls for nullable fields #3474

JavaScript

  • Use the latest version of superagent #3579

Kotlin

  • [Kotlin-client] Fix null assignation to header/query param map #3749
  • [Kotlin-client] Authentication support #3722
  • [kotlin] Change Kotlin client exceptions to expose lack of support as UnsupportedOperationException rather than NotImplementedException #3611
  • Various fix for Kotlin templates #3504

PHP

  • [Slim] Distinction between basicBasic and basicBearer authentication #3621

Python

  • [BUG][Python-Flask] Primitive type bytearray deserialization missing in util.py #3642
  • [Python] support api key refresh in configuration module #3594
  • [Python] avoid unnecessary dictionary lookup in get_api_key method #3592

R

  • [R] Updating api docs to include HTTP response codes and their corresponding headers #3699
  • [R] feat(r): handling error response for 3xx cases #3571

Ruby

  • Fix runtime error in the model's valid? of Ruby client #3671
  • [Ruby][faraday] Properly pass verify_mode to faraday #3652

Rust

  • [Rust Server] Support Bearer based Authentication #3606
  • [Rust Server] Frunk - LabelledGeneric - support #3552

TypeScript

  • [typescript-fetch] prefix request interface #3740
  • [typescript-angular] Encode objects for multipart/form-data with JSON #3738
  • [typescript-fetch] namespacing the generated request object types #3695
  • [typescript-fetch] Add nullable support #3645
  • typescript-angular: Add correct library versions for Angular 8.0.0 #3619
  • typescript-axios: If the return type is empty, it should be void instead of Response #3617
  • [Typescript] Fix typescript-inversify compiler errors #3607
  • typescript-fetch: Fix type errors in generated code #3605

v4.1.0 released

09 Aug 14:35
59c4e38
Compare
Choose a tag to compare

v4.1.0 (breaking changes with fallback) released with 4 new generators/libraries:

  • OCaml client generator: ocaml
  • NodeJS Express server generator (alpha): nodejs-express-server
  • Java 11 native HTTP client library: --additional-properties library=native
  • Ruby Faraday client library: --additional-properties library=faraday

Thanks for the OpenAPI Generator community to help move the project forward with another minor release.

We've also launched a new Slack workspace. Please join to discuss OpenAPI Generator.

For a full list of changes, please refer to the Pull Request page. Below are the highlights:

General

  • Better handling of dot in inline model name #3498
  • [fix] Assign template directory to additional properties #3385
  • Updates to address recent lodash Object prototype vulnerability #3348
  • [openapi-yaml] Prerequisities for Swagger 2 template #3202
  • [core] Initial implementation of a validation framework in core #3183

Bash

  • Bash skip empty query param fix #3290

C#

  • [C#][client][csharp-netcore] Fix csharp netcore defaultheaders #3562
  • Fix logic of getNullableType of csharp server and client #3537
  • Fix DateTimeOffset nullable issue #3530
  • [aspnetcore] Support cookie parameter #3490
  • Adds default property values in ASP .NET Core models #3369

C++

  • [C++][Pistache] Do not use JSON for primitive types in request body #3509
  • [C++][Qt5] Remove QRandomGenerator #3508
  • Add modelNamePrefix option for qt5 #3431
  • qt5 client: strip whitespace #3406
  • [C++][Pistache] Add compatibility for nlohmann-json 3.5.0 #3306
  • Fix issue deserializing to nullptr #3572

Dart

  • [dart-jaguar] Fixes error accessing default converters #3361
  • [dart-jaguar] Adds option to customise the generated API client name #3234

Go

  • [Go][experimental-client]: make struct members pointers, provide custom marshalling #3371

Java

  • [java][client][jax-rs] Add a constant for Jackson @JsonProperty #3560
  • [java-client][okhttp-gson] fixes for interceptors in ApiClient.java #3502
  • Expand path templates via resttemplate's uriTemplateHandler #3500
  • [Java][RestTemplate] remove wrong Null Check #3481
  • [Java] Replace "useNullForUnknownEnumValue" option with the nullable attribute #3455
  • [Java] add nullable support to the clients #3453
  • [Java] Fix numeric field names #3436
  • Java 11 native HTTP client library #3434
  • [Java] add nullable annotation to pojo template for non-required fields #3409
  • [java rest-assured] prevent reqSpec reuse between requests #3375
  • [JaxRS-Spec] add openApiSpecFileLocation parameter #3344
  • [java] Support for number enum #3328
  • java-springcloud: No dependency management if parent overridden #3301
  • Enable async option for spring-cloud library #2670
  • Fix invalid spring properties prefix #3501
  • [java-client][okhttp-gson] support bearer authentication #3236

JavaScript/NodeJS

  • Add a new NodeJS Express server generator #3567
  • Upgrade babel packages for Javascript ES6 generator #3424

OCaml

  • [OCaml] Add file post-processing #3568
  • [OCaml] Response headers were not processed for enums collection #3526
  • [OCaml] various enhancements #3483
  • [OCaml] new client generator #3446

PHP

  • Fix PHP Symfony non-primitive return type being forced to be an array #3515

Python

  • [Python][server] Use range for dependencies in python-flask #3470

Rust

  • [rust] Stop deriving Eq for models #3463
  • [Rust][Client] Correct the Rust client generated documentation #3419
  • Better Rust client imports #3332
  • Fix enum types in structs #3309
  • [Rust Server] Support multipart/form_data request bodies #2846
  • [Rust Server] Generate valid Rustdocs for lazy_static items #3556
  • [Rust Server] Allow more than 32 configured paths #3494

R

  • [R] updated example in doc(.md) file #3429

Ruby

  • [Ruby] clean up Ruby dev dependencies #3551
  • [Ruby] remove auto-generated Gemfile.lock #3541
  • [Ruby][faraday] add TLS setting support #3527
  • [Ruby][Faraday] Various improvements #3520
  • [Ruby] add support for "faraday" #3405
  • Ruby-client: Don't encode slashes if strict-spec false #3204

Swift

  • [Swift4] Introduce XcodeGen #3396

Scala

  • [scala-play-server] Correct CLI option name #3340

TypeScript

  • typescript-fetch: allow configuration of headers and credentials #3586
  • [typescript-angular] fix string casting #3558
  • [typescript] change accessToken name parameter to optional #3555
  • typescript-fetch: Properly detect and encode container request body param #3517
  • [typescript-rxjs]: support reponseType blob #3437
  • typescript-axios string date format #3423
  • [typescript-rxjs] runtime and api cleanup #3316
  • [typescript-angular] use correct package with http-client #3465
  • [Typescript Axios] fix Content-type not set properly #2695
  • [typescript-node] fixed enum generator for top level enums #2266
  • Added serialization support for typescript on complex object headers #1874
  • Support importMapping definitions for TypeScriptNodeClientCodegen #3469
  • [typescript-angular] add flag for using string enums #3464
  • [typescript-node] Promise-based Authentication interface #3408
  • Fix NPM build for Typescript-fetch #3403
  • [typescript-angular] Add encoder configuration, fix default encoder #3389
  • typescript-fetch: fix basic type errors #3380
  • [typescript-fetch] support custom stringify for query string #3327
  • [typescript-fetch] Fix collection formats reference #3324
  • [typescript-fetch] Fix access token type #3323

v4.0.3 released

09 Jul 12:47
203fc81
Compare
Choose a tag to compare

The last patch release before 4.1.0 (minor release). Below please find the highlight of the changes. For a full list, please refer to the Pull Request page

Once again, thanks for all the contributions from the awesome community.

Note: we'll also talk about this release in Open Summit Japan 2019. Please join our presentation on Jul 19 (Friday) 14:00 - 14:30 (GMT+9) if you want to learn more about developer experience for open-source projects.

General

  • [online] Remove GENERATOR_HOST defaults #3289
  • Handle discriminator mapping non-ref name #3247
  • [core] consider content in parameters and headers when computing unused schemas #3243
  • Update to swagger-parser to 2.0.13-OpenAPITools.org-2 #3239
  • [online generator] integrate with rapidoc (interactive explorer) #3229
  • Fix inheritance with modelPrefix #3151
  • Update DefaultCodeGen to allow additional primitive types #2799

C++

  • [C++][Pistache] Fix warnings #3238
  • [C++][Pistache] Catch exception instead of runtime_error #3225

C#

  • [csharp] Adding http response details on api_docs and making example snippet compilable #3129
  • [csharp-netcore] Add http response details in api_docs to make example snippet compilable #3128
  • [aspnetcore] Add API key authentication support to aspnetcore server #3089
  • [aspnetcore] Preliminary support for ASP.NET 3.0 Core preview 5 #2824

Dart

  • [dart-jaguar] Makes converters publicly accessible #3245

Documentation

  • [openapi-yaml] fix config option outputFile ignored by the generator #3199

Elm

  • [elm][haskell-servant] fix StringIndexOutOfBoundsException #3262

Go

  • Add new Go client (experimental) generator #3268
  • [Go][Client] Use configured Scheme and Host in requests #3115
  • [go] Serialize multipart array of complex objects as JSON #2965

Haskell

  • [elm][haskell-servant] fix StringIndexOutOfBoundsException #3262

Java

  • [Java] fix javadoc configuration #3302
  • [Java][Rest-assured] Bump rest-assured version #3282
  • Update dependency with jsr250-api #3279
  • Added RxJava2 to java-vertx server codegen #3240
  • Add missing javax dependencies for Java > 8 #3188
  • Added special handling for 'string' types with format 'uri' #3161
  • [java][jesery2] fix "InjectionManagerFactory not found" issue #3153
  • [Spring] fix documentation containing argument "java8" twice #3122
  • Check classVarName against reserved keywords, renamed snakeCase to lowerCamelCase #3079
  • Only enable Spring default interface for java8 #3022
  • Add throws Exception directive to Spring operation methods #2482

JavaScript

  • Update JS flow dependencies to fix security issues #3296
  • Fix typo in Javascript generator template #3249

Kotlin

  • Ktor Fix KtorExperimentalAPI import #3108
  • Add Flow import to kotlin spring reactive #3107
  • [KOTLIN Spring] add interfaceOnly option #3050

Perl

  • Perl: Generate templated travis configuration #3193
  • Perl: Basic bearer auth support #3192

PHP

  • Set error_reporting(E_ALL) in phpunit.xml settings, to crash on undefined variables #3266

Python

  • [Python] Adds new client generator, python-experimental #3244
  • [Python] configurable limit of simultaneous connections (python/asyncio) #3200
  • [Python] Make example code snippet compilable #3148

R

  • [R] Added handling exception with ApiException class and better documentation #3217
  • [R] Alternate PR for serialization fixes along with WithHttpInfo method enhancement #3099
  • [R] Inclusion of useragent, timeout and serialization #3084

Ruby

  • [Ruby][Client] Add "send" to ruby reserved word list #3146

TypeScript

  • Avoid nullsafe errors in typescript-rxjs runtime.ts #3255
  • [typescript-rxjs] refactor to arrow functions and short hand object creation #3077

v4.0.2 released

20 Jun 04:59
fae9d4a
Compare
Choose a tag to compare

Even though v4.0.2 is the regular bi-weekly patch release, it still comes with enhancements, bug fixes covering many languages. For a full list, please refer to the Pull Request page. Below please find the highlight of the changes:

General

  • [gradle] Document consuming via gradle plugin portal #3125
  • Import inner items for map #3123
  • [maven-plugin] fix strictSpec parameter without alias #3095
  • [core] GeneratorSettings, WorkflowSettings, and cleanup in CodegenConfigurator #2946
  • Link query parameter to model object #2710

C#

  • Update C# client dependency #2678
  • [ASP.Net Core] General support to add scopes for bearer authentication #1984

C++

  • [C++] [cpprestsdk] Add examples and test for cpprestsdk #3109
  • [C++][Qt5] Add Q_DECLARE_METATYPE to the generated models and remove ref in signals #3091
  • [C++] [Qt5] Add API timeout handling #3078
  • [cpp-pistache-server] Fix wrong include path in api-header template #3062
  • [C++][Qt5]Map number to double since float is also parsed as double in Qt5 #3046

Go

  • refactor(golang): Use http provided constants for http methods #3028
  • [Golang][client] Allow generating go client code as a submodule #3012

Java

  • [Java][okhttp-gson] Update dependencies #3103
  • [Java][jersey2] Making response headers case-insensitive #3072
  • [Java][jersey2] Documentation changes and making example snippet compilable #3056
  • [Java][jersey2] Fixing javadocs wark #3040
  • [Java][okhttp-gson] Making API response headers case insensitive #3029

Javascript/NodeJS

  • Bump up babel-cli version to fix security alert #3121
  • Mark nodejs-server as deprecated #3083
  • [JavaScript] Remove default parameters syntax as it's an ES6 feature #2848

Kotlin

  • [KOTLIN Spring] fix generation with modelNamePrefix/Suffix #3038
  • [Kotlin-Spring] template fixes/improvements #3007
  • [Kotlin-Spring] add reactive behavior via Kotlin coroutines #2934

Ruby

  • Fix rubocop obsolescence #3175
  • Ruby: Avoid double escaping path items #3093
  • Ruby client: escape path parameters #3039

Rust

  • Idiomatic Rust returns for Error conversions #2812
  • Add enum support to rust and skip none option serialization in clients #2244

Scala

  • [scala-play-server] Fix API doc url #3096
  • [scala-play-server] Fix generated enums named after a reserved word #3080

TypeScript

  • [typescript-fetch] add bearer token support #3097