OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

Overview

OpenAPI Generator

Stable releaases in Maven Central Apache 2.0 License Open Collective backers Join the Slack chat room Follow OpenAPI Generator Twitter account to get the latest update

Master (5.3.1): Build Status Integration Test2 Windows Test JDK11 Build Bitrise GitHub Workflow Status (branch)

5.4.x (5.4.x): Build Status Integration Test2 Windows Test JDK11 Build Bitrise

6.0.x (6.0.x): Build Status Integration Test2 Windows Test JDK11 Build Bitrise

If you would like to contribute, please refer to guidelines and a list of open tasks.

‼️ To migrate from Swagger Codegen to OpenAPI Generator, please refer to the migration guide ‼️

📔 For more information, please refer to the Wiki page and FAQ 📔

📔 The eBook A Beginner's Guide to Code Generation for REST APIs is a good starting point for beginners 📔

⚠️ If the OpenAPI spec, templates or any input (e.g. options, environment variables) is obtained from an untrusted source or environment, please make sure you've reviewed these inputs before using OpenAPI Generator to generate the API client, server stub or documentation to avoid potential security issues (e.g. code injection). For security vulnerabilities, please contact [email protected]. ⚠️

‼️ Both "OpenAPI Tools" (https://OpenAPITools.org - the parent organization of OpenAPI Generator) and "OpenAPI Generator" are not affiliated with OpenAPI Initiative (OAI) ‼️

Sponsors

If you find OpenAPI Generator useful for work, please consider asking your company to support this Open Source project by becoming a sponsor. You can also individually sponsor the project by becoming a backer.

Thank you to our bronze sponsors!

NamSor LightBow

Thank you GoDaddy for sponsoring the domain names, Linode for sponsoring the VPS and Checkly for sponsoring the API monitoring

Linode

Overview

OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (both 2.0 and 3.0 are supported). Currently, the following languages/frameworks are supported:

Languages/Frameworks
API clients ActionScript, Ada, Apex, Bash, C, C# (.net 2.0, 3.5 or later, .NET Standard 1.3 - 2.0, .NET Core 2.0, .NET 5.0. Libraries: RestSharp, HttpClient), C++ (Arduino, cpp-restsdk, Qt5, Tizen, Unreal Engine 4), Clojure, Crystal, Dart, Elixir, Elm, Eiffel, Erlang, Go, Groovy, Haskell (http-client, Servant), Java (Apache HttpClient, Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java, Rest-assured, Spring 5 Web Client, MicroProfile Rest Client), k6, Kotlin, Lua, Nim, Node.js/JavaScript (ES5, ES6, AngularJS with Google Closure Compiler annotations, Flow types, Apollo GraphQL DataStore), Objective-C, OCaml, Perl, PHP, PowerShell, Python, R, Ruby, Rust (hyper, reqwest, rust-server), Scala (akka, http4s, scalaz, sttp, swagger-async-httpclient), Swift (2.x, 3.x, 4.x, 5.x), Typescript (AngularJS, Angular (2.x - 11.x), Aurelia, Axios, Fetch, Inversify, jQuery, Nestjs, Node, redux-query, Rxjs)
Server stubs Ada, C# (ASP.NET Core, NancyFx, Azure Functions), C++ (Pistache, Restbed, Qt5 QHTTPEngine), Erlang, F# (Giraffe), Go (net/http, Gin, Echo), Haskell (Servant, Yesod), Java (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, Jersey, RestEasy, Play Framework, PKMST, Vert.x), Kotlin (Spring Boot, Ktor, Vertx), PHP (Laravel, Lumen, Mezzio (fka Zend Expressive), Slim, Silex, Symfony), Python (FastAPI, Flask), NodeJS, Ruby (Sinatra, Rails5), Rust (rust-server), Scala (Akka, Finch, Lagom, Play, Scalatra)
API documentation generators HTML, Confluence Wiki, Asciidoc, Markdown, PlantUML
Configuration files Apache2
Others GraphQL, JMeter, Ktorm, MySQL Schema, Protocol Buffer, WSDL

Table of contents

1 - Installation

1.1 - Compatibility

The OpenAPI Specification has undergone 3 revisions since initial creation in 2010. The openapi-generator project has the following compatibilities with the OpenAPI Specification:

OpenAPI Generator Version Release Date Notes
6.0.0 (upcoming major release) SNAPSHOT Jan/Feb 2022 Minor release with breaking changes (no fallback)
5.4.0 (upcoming minor release) SNAPSHOT Dec 2021 Minor release with breaking changes (with fallback)
5.3.1 (upcoming patch release) SNAPSHOT Nov/Dec 2021 Patch release (enhancements, bug fixes, etc)
5.3.0 (latest stable release) 24.10.2021 Minor release with breaking changes (with fallback)
4.3.1 06.05.2020 Patch release (enhancements, bug fixes, etc)

OpenAPI Spec compatibility: 1.0, 1.1, 1.2, 2.0, 3.0

For old releases, please refer to the Release page.

1.2 - Artifacts on Maven Central

You can find our released artifacts on maven central:

Core:

<dependency>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator</artifactId>
    <version>${openapi-generator-version}</version>
</dependency>

See the different versions of the openapi-generator artifact available on maven central.

Cli:

<dependency>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-cli</artifactId>
    <version>${openapi-generator-version}</version>
</dependency>

See the different versions of the openapi-generator-cli artifact available on maven central.

Maven plugin:

<dependency>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>${openapi-generator-version}</version>
</dependency>

Gradle plugin:

<dependency>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-gradle-plugin</artifactId>
    <version>${openapi-generator-version}</version>
</dependency>

1.3 - Download JAR

If you're looking for the latest stable version, you can grab it directly from Maven.org (Java 8 runtime at a minimum):

JAR location: https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.3.0/openapi-generator-cli-5.3.0.jar

For Mac/Linux users:

wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.3.0/openapi-generator-cli-5.3.0.jar -O openapi-generator-cli.jar

For Windows users, you will need to install wget or you can use Invoke-WebRequest in PowerShell (3.0+), e.g.

Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.3.0/openapi-generator-cli-5.3.0.jar

After downloading the JAR, run java -jar openapi-generator-cli.jar help to show the usage.

For Mac users, please make sure Java 8 is installed (Tips: run java -version to check the version), and export JAVA_HOME in order to use the supported Java version:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
export PATH=${JAVA_HOME}/bin:$PATH

Launcher Script

One downside to manual jar downloads is that you don't keep up-to-date with the latest released version. We have a Bash launcher script at bin/utils/openapi-generator.cli.sh which resolves this issue.

To install the launcher script, copy the contents of the script to a location on your path and make the script executable.

An example of setting this up (NOTE: Always evaluate scripts curled from external systems before executing them).

mkdir -p ~/bin/openapitools
curl https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/bin/utils/openapi-generator-cli.sh > ~/bin/openapitools/openapi-generator-cli
chmod u+x ~/bin/openapitools/openapi-generator-cli
export PATH=$PATH:~/bin/openapitools/

Now, openapi-generator-cli is "installed". On invocation, it will query the GitHub repository for the most recently released version. If this matches the last downloaded jar, it will execute as normal. If a newer version is found, the script will download the latest release and execute it.

If you need to invoke an older version of the generator, you can define the variable OPENAPI_GENERATOR_VERSION either ad hoc or globally. You can export this variable if you'd like to persist a specific release version.

Examples:

# Execute latest released openapi-generator-cli
openapi-generator-cli version

# Execute version 4.1.0 for the current invocation, regardless of the latest released version
OPENAPI_GENERATOR_VERSION=4.1.0 openapi-generator-cli version

# Execute version 4.1.0-SNAPSHOT for the current invocation
OPENAPI_GENERATOR_VERSION=4.1.0-SNAPSHOT openapi-generator-cli version

# Execute version 4.0.2 for every invocation in the current shell session
export OPENAPI_GENERATOR_VERSION=4.0.2
openapi-generator-cli version # is 4.0.2
openapi-generator-cli version # is also 4.0.2

# To "install" a specific version, set the variable in .bashrc/.bash_profile
echo "export OPENAPI_GENERATOR_VERSION=4.0.2" >> ~/.bashrc
source ~/.bashrc
openapi-generator-cli version # is always 4.0.2, unless any of the above overrides are done ad hoc

1.4 - Build Projects

To build from source, you need the following installed and available in your $PATH:

After cloning the project, you can build it from source with this command:

mvn clean install

If you don't have maven installed, you may directly use the included maven wrapper, and build with the command:

./mvnw clean install

The default build contains minimal static analysis (via CheckStyle). To run your build with PMD and Spotbugs, use the static-analysis profile:

mvn -Pstatic-analysis clean install

1.5 - Homebrew

To install, run brew install openapi-generator

Here is an example usage to generate a Ruby client:

openapi-generator generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g ruby -o /tmp/test/

To reinstall with the latest master, run brew uninstall openapi-generator && brew install --HEAD openapi-generator

To install OpenJDK (pre-requisites), please run

brew tap AdoptOpenJDK/openjdk
brew install --cask adoptopenjdk12
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home/

To install Maven, please run

brew install maven

1.6 - Docker

Public Pre-built Docker images

OpenAPI Generator CLI Docker Image

The OpenAPI Generator image acts as a standalone executable. It can be used as an alternative to installing via homebrew, or for developers who are unable to install Java or upgrade the installed version.

To generate code with this image, you'll need to mount a local location as a volume.

Example:

docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate \
    -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
    -g go \
    -o /local/out/go

The generated code will be located under ./out/go in the current directory.

OpenAPI Generator Online Docker Image

The openapi-generator-online image can act as a self-hosted web application and API for generating code. This container can be incorporated into a CI pipeline, and requires at least two HTTP requests and some docker orchestration to access generated code.

Example usage:

# Start container at port 8888 and save the container id
> CID=$(docker run -d -p 8888:8080 openapitools/openapi-generator-online)

# allow for startup
> sleep 10

# Get the IP of the running container (optional)
GEN_IP=$(docker inspect --format '{{.NetworkSettings.IPAddress}}'  $CID)

# Execute an HTTP request to generate a Ruby client
> curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{"openAPIUrl": "https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml"}' \
'http://localhost:8888/api/gen/clients/ruby'

{"code":"c2d483.3.4672-40e9-91df-b9ffd18d22b8","link":"http://localhost:8888/api/gen/download/c2d483.3.4672-40e9-91df-b9ffd18d22b8"}

# Download the generated zip file
> wget http://localhost:8888/api/gen/download/c2d483.3.4672-40e9-91df-b9ffd18d22b8

# Unzip the file
> unzip c2d483.3.4672-40e9-91df-b9ffd18d22b8

# Shutdown the openapi generator image
> docker stop $CID && docker rm $CID

Development in docker

You can use run-in-docker.sh to do all development. This script maps your local repository to /gen in the docker container. It also maps ~/.m2/repository to the appropriate container location.

To execute mvn package:

git clone https://github.com/openapitools/openapi-generator
cd openapi-generator
./run-in-docker.sh mvn package

Build artifacts are now accessible in your working directory.

Once built, run-in-docker.sh will act as an executable for openapi-generator-cli. To generate code, you'll need to output to a directory under /gen (e.g. /gen/out). For example:

./run-in-docker.sh help # Executes 'help' command for openapi-generator-cli
./run-in-docker.sh list # Executes 'list' command for openapi-generator-cli
./run-in-docker.sh /gen/bin/go-petstore.sh  # Builds the Go client
./run-in-docker.sh generate -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
    -g go -o /gen/out/go-petstore --package-name=petstore # generates go client, outputs locally to ./out/go-petstore
Troubleshooting

If an error like this occurs, just execute the mvn clean install -U command:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project openapi-generator: A type incompatibility occurred while executing org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test: java.lang.ExceptionInInitializerError cannot be cast to java.io.IOException

./run-in-docker.sh mvn clean install -U

Failed to execute goal org.fortasoft:gradle-maven-plugin:1.0.8:invoke (default) on project openapi-generator-gradle-plugin-mvn-wrapper: org.gradle.tooling.BuildException: Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.7-bin.zip'

Right now: no solution for this one :|

Run Docker in Vagrant

Prerequisite: install Vagrant and VirtualBox.

git clone https://github.com/openapitools/openapi-generator.git
cd openapi-generator
vagrant up
vagrant ssh
cd /vagrant
./run-in-docker.sh mvn package

1.7 - NPM

There is also an NPM package wrapper available for different platforms (e.g. Linux, Mac, Windows). (JVM is still required) Please see the project's README there for more information.

Install it globally to get the CLI available on the command line:

npm install @openapitools/openapi-generator-cli -g
openapi-generator-cli version

To use a specific version of "openapi-generator-cli"

openapi-generator-cli version-manager set 5.3.0

Or install it as dev-dependency:

npm install @openapitools/openapi-generator-cli -D

2 - Getting Started

To generate a PHP client for petstore.yaml, please run the following

git clone https://github.com/openapitools/openapi-generator
cd openapi-generator
mvn clean package
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \
   -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
   -g php \
   -o /var/tmp/php_api_client

(if you're on Windows, replace the last command with java -jar modules\openapi-generator-cli\target\openapi-generator-cli.jar generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g php -o c:\temp\php_api_client)

You can also download the JAR (latest release) directly from maven.org

To get a list of general options available, please run java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar help generate

To get a list of PHP specified options (which can be passed to the generator with a config file via the -c option), please run java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar config-help -g php

3 - Usage

To generate a sample client library

You can build a client against the Petstore API as follows:

./bin/generate-samples.sh ./bin/configs/java-okhttp-gson.yaml

(On Windows, please install GIT Bash for Windows to run the command above)

This script uses the default library, which is okhttp-gson. It will run the generator with this command:

java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \
  -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
  -g java \
  -t modules/openapi-generator/src/main/resources/Java \
  --additional-properties artifactId=petstore-okhttp-gson,hideGenerationTimestamp:true \
  -o samples/client/petstore/java/okhttp-gson

with a number of options. The java options are documented here.

You can also get the options with the help generate command (below only shows partial results):

NAME
        openapi-generator-cli generate - Generate code with the specified
        generator.

SYNOPSIS
        openapi-generator-cli generate
                [(-a <authorization> | --auth <authorization>)]
                [--api-name-suffix <api name suffix>] [--api-package <api package>]
                [--artifact-id <artifact id>] [--artifact-version <artifact version>]
                [(-c <configuration file> | --config <configuration file>)] [--dry-run]
                [(-e <templating engine> | --engine <templating engine>)]
                [--enable-post-process-file]
                [(-g <generator name> | --generator-name <generator name>)]
                [--generate-alias-as-model] [--git-host <git host>]
                [--git-repo-id <git repo id>] [--git-user-id <git user id>]
                [--global-property <global properties>...] [--group-id <group id>]
                [--http-user-agent <http user agent>]
                [(-i <spec file> | --input-spec <spec file>)]
                [--ignore-file-override <ignore file override location>]
                [--import-mappings <import mappings>...]
                [--instantiation-types <instantiation types>...]
                [--invoker-package <invoker package>]
                [--language-specific-primitives <language specific primitives>...]
                [--legacy-discriminator-behavior] [--library <library>]
                [--log-to-stderr] [--minimal-update]
                [--model-name-prefix <model name prefix>]
                [--model-name-suffix <model name suffix>]
                [--model-package <model package>]
                [(-o <output directory> | --output <output directory>)] [(-p <additional properties> | --additional-properties <additional properties>)...]
                [--package-name <package name>] [--release-note <release note>]
                [--remove-operation-id-prefix]
                [--reserved-words-mappings <reserved word mappings>...]
                [(-s | --skip-overwrite)] [--server-variables <server variables>...]
                [--skip-validate-spec] [--strict-spec <true/false strict behavior>]
                [(-t <template directory> | --template-dir <template directory>)]
                [--type-mappings <type mappings>...] [(-v | --verbose)]

OPTIONS
        -a <authorization>, --auth <authorization>
            adds authorization headers when fetching the OpenAPI definitions
            remotely. Pass in a URL-encoded string of name:header with a comma
            separating multiple values

...... (results omitted)

        -v, --verbose
            verbose mode

You can then compile and run the client, as well as unit tests against it:

cd samples/client/petstore/java/okhttp-gson
mvn package

Other generators have samples too.

3.1 - Customization

Please refer to customization.md on how to customize the output (e.g. package name, version)

3.2 - Workflow Integration (Maven, Gradle, Github, CI/CD)

Please refer to integration.md on how to integrate OpenAPI generator with Maven, Gradle, sbt, Bazel, Github and CI/CD.

3.3 - Online OpenAPI generator

Here are the public online services:

The server is sponsored by Linode Linode Logo

(These services are beta and do not have any guarantee on service level)

Please refer to online.md on how to run and use the openapi-generator-online - a web service for openapi-generator.

3.4 - License information on Generated Code

The OpenAPI Generator project is intended as a benefit for users of the Open API Specification. The project itself has the License as specified. In addition, please understand the following points:

  • The templates included with this project are subject to the License.
  • Generated code is intentionally not subject to the parent project license

When code is generated from this project, it shall be considered AS IS and owned by the user of the software. There are no warranties--expressed or implied--for generated code. You can do what you wish with it, and once generated, the code is your responsibility and subject to the licensing terms that you deem appropriate.

3.5 - IDE Integration

Here is a list of community-contributed IDE plug-ins that integrate with OpenAPI Generator:

4 - Companies/Projects using OpenAPI Generator

Here are some companies/projects (alphabetical order) using OpenAPI Generator in production. To add your company/project to the list, please visit README.md and click on the icon to edit the page.

5 - Presentations/Videos/Tutorials/Books

6 - About Us

6.1 - OpenAPI Generator Core Team

OpenAPI Generator core team members are contributors who have been making significant contributions (review issues, fix bugs, make enhancements, etc) to the project on a regular basis.

Core Team Members

❤️ = Link to support the contributor directly

Template Creator

NOTE: Embedded templates are only supported in Mustache format. Support for all other formats is experimental and subject to change at any time.

Here is a list of template creators:

  • API Clients:
    • Ada: @stcarrez
    • Apex: @asnelling
    • Bash: @bkryza
    • C: @PowerOfCreation @zhemant ❤️
    • C++ REST: @Danielku15
    • C++ Tiny: @AndersSpringborg @kaareHH @michelealbano @mkakbas
    • C++ UE4: @Kahncode
    • C# (.NET 2.0): @who
    • C# (.NET Standard 1.3 ): @Gronsak
    • C# (.NET 4.5 refactored): @jimschubert ❤️
    • C# (HttpClient): @Blackclaws
    • Clojure: @xhh
    • Crystal: @wing328
    • Dart: @yissachar
    • Dart (refactor): @joernahrens
    • Dart 2: @swipesight
    • Dart (Jaguar): @jaumard
    • Dart (Dio): @josh-burton
    • Elixir: @niku
    • Elm: @eriktim
    • Eiffel: @jvelilla
    • Erlang: @tsloughter
    • Erlang (PropEr): @jfacorro @robertoaloi
    • Groovy: @victorgit
    • Go: @wing328 ❤️
    • Go (rewritten in 2.3.0): @antihax
    • Haskell (http-client): @jonschoning
    • Java (Feign): @davidkiss
    • Java (Retrofit): @0legg
    • Java (Retrofit2): @emilianobonassi
    • Java (Jersey2): @xhh
    • Java (okhttp-gson): @xhh
    • Java (RestTemplate): @nbruno
    • Java (Spring 5 WebClient): @daonomic
    • Java (RESTEasy): @gayathrigs
    • Java (Vertx): @lopesmcc
    • Java (Google APIs Client Library): @charlescapps
    • Java (Rest-assured): @viclovsky
    • Java (Java 11 Native HTTP client): @bbdouglas
    • Java (Apache HttpClient): @harrywhite4
    • Javascript/NodeJS: @jfiala
    • Javascript (Apollo DataSource): @erithmetic
    • Javascript (Closure-annotated Angular) @achew22
    • Javascript (Flow types) @jaypea
    • JMeter: @davidkiss
    • Kotlin: @jimschubert ❤️
    • Kotlin (MultiPlatform): @andrewemery
    • Lua: @daurnimator
    • Nim: @hokamoto
    • OCaml: @cgensoul
    • Perl: @wing328 ❤️
    • PHP (Guzzle): @baartosz
    • PHP (with Data Transfer): @Articus
    • PowerShell: @beatcracker
    • PowerShell (refactored in 5.0.0): @wing328
    • Python: @spacether
    • R: @ramnov
    • Ruby (Faraday): @meganemura @dkliban
    • Rust: @farcaller
    • Rust (rust-server): @metaswitch
    • Scala (scalaz & http4s): @tbrown1979
    • Scala (Akka): @cchafer
    • Scala (sttp): @chameleon82
    • Swift: @tkqubo
    • Swift 3: @hexelon
    • Swift 4: @ehyche
    • Swift 5: @4brunu
    • TypeScript (Angular1): @mhardorf
    • TypeScript (Angular2): @roni-frantchi
    • TypeScript (Angular6): @akehir
    • TypeScript (Angular7): @topce
    • TypeScript (Axios): @nicokoenig
    • TypeScript (Fetch): @leonyu
    • TypeScript (Inversify): @gualtierim
    • TypeScript (jQuery): @bherila
    • TypeScript (Nestjs): @vfrank66
    • TypeScript (Node): @mhardorf
    • TypeScript (Rxjs): @denyo
    • TypeScript (redux-query): @petejohansonxo
  • Server Stubs
    • Ada: @stcarrez
    • C# ASP.NET 5: @jimschubert ❤️
    • C# ASP.NET Core 3.0: @A-Joshi
    • C# APS.NET Core 3.1: @phatcher
    • C# Azure functions: @Abrhm7786
    • C# NancyFX: @mstefaniuk
    • C++ (Qt5 QHttpEngine): @etherealjoy
    • C++ Pistache: @sebymiano
    • C++ Restbed: @stkrwork
    • Erlang Server: @galaxie
    • F# (Giraffe) Server: @nmfisher
    • Go Server: @guohuang
    • Go (Echo) Server: @ph4r5h4d
    • Go (Gin) Server: @kemokemo
    • GraphQL Express Server: @renepardon
    • Haskell Servant: @algas
    • Haskell Yesod: @yotsuya
    • Java MSF4J: @sanjeewa-malalgoda
    • Java Spring Boot: @diyfr
    • Java Undertow: @stevehu
    • Java Play Framework: @JFCote
    • Java PKMST: @anshu2185 @sanshuman @rkumar-pk @ninodpillai
    • Java Vert.x: @lwlee2608
    • JAX-RS RestEasy: @chameleon82
    • JAX-RS CXF: @hiveship
    • JAX-RS CXF (CDI): @nickcmaynard
    • JAX-RS RestEasy (JBoss EAP): @jfiala
    • Kotlin: @jimschubert ❤️
    • Kotlin (Spring Boot): @dr4ke616
    • Kotlin (Vertx): @Wooyme
    • NodeJS Express: @YishTish
    • PHP Laravel: @renepardon
    • PHP Lumen: @abcsun
    • PHP Mezzio (with Path Handler): @Articus
    • PHP Slim: @jfastnacht
    • PHP Slim4: @ybelenko
    • PHP Symfony: @ksm2
    • Python FastAPI: @krjakbrjak
    • Python AIOHTTP: @Jyhess
    • Ruby on Rails 5: @zlx
    • Rust (rust-server): @metaswitch
    • Scala Akka: @Bouillie
    • Scala Finch: @jimschubert ❤️
    • Scala Lagom: @gmkumar2005
    • Scala Play: @adigerber
  • Documentation
    • AsciiDoc: @man-at-home
    • HTML Doc 2: @jhitchcock
    • Confluence Wiki: @jhitchcock
    • PlantUML: @pburls
  • Configuration
    • Apache2: @stkrwork
    • k6: @mostafa
  • Schema
    • Avro: @sgadouar
    • GraphQL: @wing328 ❤️
    • Ktorm: @Luiz-Monad
    • MySQL: @ybelenko
    • Protocol Buffer: @wing328
    • WSDL @adessoDpd

❤️ = Link to support the contributor directly

How to join the core team

Here are the requirements to become a core team member:

To join the core team, please reach out to [email protected] for more information.

To become a Template Creator, simply submit a PR for new API client (e.g. Rust, Elixir) or server stub (e.g. Ruby Grape) generator.

6.2 - OpenAPI Generator Technical Committee

Members of the OpenAPI Generator technical committee shoulder the following responsibilities:

  • Provides guidance and direction to other users
  • Reviews pull requests and issues
  • Improves the generator by making enhancements, fixing bugs or updating documentations
  • Sets the technical direction of the generator

Who is eligible? Those who want to join must have at least 3 PRs merged into a generator. (Exceptions can be granted to template creators or contributors who have made a lot of code changes with less than 3 merged PRs)

If you want to join the committee, please kindly apply by sending an email to [email protected] with your Github ID.

Members of Technical Committee

Languages/Generators Member (join date)
ActionScript
Ada @stcarrez (2018/02) @michelealbano (2018/02)
Android @jaz-ah (2017/09)
Apex
Bash @frol (2017/07) @bkryza (2017/08) @kenjones-cisco (2017/09)
C @zhemant (2018/11) @ityuhui (2019/12) @michelealbano (2020/03)
C++ @ravinikam (2017/07) @stkrwork (2017/07) @etherealjoy (2018/02) @martindelille (2018/03) @muttleyxd (2019/08)
C# @mandrean (2017/08) @frankyjuang (2019/09) @shibayan (2020/02) @Blackclaws (2021/03) @lucamazzanti (2021/05)
Clojure
Dart @jaumard (2018/09) @josh-burton (2019/12) @amondnet (2019/12) @sbu-WBT (2020/12) @kuhnroyal (2020/12) @agilob (2020/12) @ahmednfwela (2021/08)
Eiffel @jvelilla (2017/09)
Elixir @mrmstn (2018/12)
Elm @eriktim (2018/09)
Erlang @tsloughter (2017/11) @jfacorro (2018/10) @robertoaloi (2018/10)
F# @nmfisher (2019/05)
Go @antihax (2017/11) @grokify (2018/07) @kemokemo (2018/09) @jirikuncar (2021/01) @ph4r5h4d (2021/04)
GraphQL @renepardon (2018/12)
Groovy
Haskell
Java @bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04) @lwlee2608 (2019/10)
JMeter @kannkyo (2021/01)
Kotlin @jimschubert (2017/09) ❤️ , @dr4ke616 (2018/08) @karismann (2019/03) @Zomzog (2019/04) @andrewemery (2019/10) @4brunu (2019/11) @yutaka0m (2020/03)
Lua @daurnimator (2017/08)
Nim
NodeJS/Javascript @CodeNinjai (2017/07) @frol (2017/07) @cliffano (2017/07)
ObjC
OCaml @cgensoul (2019/08)
Perl @wing328 (2017/07) ❤️ @yue9944882 (2019/06)
PHP @jebentier (2017/07), @dkarlovi (2017/07), @mandrean (2017/08), @jfastnacht (2017/09), @ackintosh (2017/09) ❤️ , @ybelenko (2018/07), @renepardon (2018/12)
PowerShell @wing328 (2020/05)
Python @taxpon (2017/07) @frol (2017/07) @mbohlool (2017/07) @cbornet (2017/09) @kenjones-cisco (2017/11) @tomplus (2018/10) @Jyhess (2019/01) @arun-nalla (2019/11) @spacether (2019/11)
R @Ramanth (2019/07) @saigiridhar21 (2019/07)
Ruby @cliffano (2017/07) @zlx (2017/09) @autopp (2019/02)
Rust @frol (2017/07) @farcaller (2017/08) @richardwhiuk (2019/07) @paladinzh (2020/05)
Scala @clasnake (2017/07), @jimschubert (2017/09) ❤️ , @shijinkui (2018/01), @ramzimaalej (2018/03), @chameleon82 (2020/03), @Bouillie (2020/04)
Swift @jgavris (2017/07) @ehyche (2017/08) @Edubits (2017/09) @jaz-ah (2017/09) @4brunu (2019/11)
TypeScript @TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @topce (2018/10) @akehir (2019/07) @petejohansonxo (2019/11) @amakhrov (2020/02)

❤️ = Link to support the contributor directly

6.3 - History of OpenAPI Generator

OpenAPI Generator is a fork of Swagger Codegen. In view of the issues with the Swagger Codegen 3.0.0 (beta) release and the disagreement on the project's direction, more than 40 top contributors and template creators of Swagger Codegen decided to fork Swagger Codegen and maintain a community-driven version called "OpenAPI Generator". Please refer to the Q&A for more information.

Founding Members (alphabetical order):

❤️ = Link to support the contributor directly

7 - License


Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech) Copyright 2018 SmartBear Software

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Comments
  • [BUG] Inheritance is broken

    [BUG] Inheritance is broken

    Bug Report Checklist

    • [x] Have you provided a full/minimal spec to reproduce the issue?
    • [x] Have you validated the input using an OpenAPI validator (example)?
    • [x] What's the version of OpenAPI Generator used?
    • [x] Have you search for related issues/PRs?
    • [x] What's the actual output vs expected output?
    Description

    Basic inheritance, as described in the OpenAPI spec does not work.

    Instead of creating a class / interface hierarchy using inheritance to represent the composition, all properties are flattened into the subclass.

    openapi-generator version

    4.0.0-20190508.072036-627 or master

    OpenAPI declaration file content or url

    schema.yaml:

    openapi: "3.0.1"
    info:
      version: 1.0.0
      title: Inheritance test
    paths:
      /order:
        get:
          summary: Product order details
          operationId: getOrder
          responses:
            '500':
              description: Successful load
              content:
                application/json:
                  schema:
                    $ref: '#/components/schemas/ExtendedErrorModel'
    components:
      schemas:
        BasicErrorModel:
          type: object
          required:
            - message
            - code
          properties:
            message:
              type: string
            code:
              type: integer
              minimum: 100
              maximum: 600
        ExtendedErrorModel:
          allOf:
            - $ref: '#/components/schemas/BasicErrorModel'
            - type: object
              required:
                - rootCause
              properties:
                rootCause:
                  type: string
    
    
    Expected output

    The following class/interface hierarchy: to be generated:

    • BasicErrorModel <- ExtendedErrorModel
    Actual output

    Three unrelated classes/interfaces:

    • BasicErrorModel
    • ExtendedErrorModel
    • ExtendedErrorModelAllOf
    Command line used for generation
    java -jar openapi-generator-cli.jar generate -i ./schema.yaml -g typescript-angular -o src
    

    I have also tried with the Java generator, and it creates the same hierarchy, so it is not just a Typescript problem.

    Steps to reproduce
    1. Copy the above yaml into schema.yaml locally.
    2. Run the command above.
    3. Examine the generated code.
    Suggest a fix

    I'm not familiar with the codebase, but it appears that getParentName in ModelUtils.java only considers a class as a viable parent for inheritance if it has a discriminator, but the above inheritance pattern does not use discriminators.

    Client: TypeScript Issue: Bug 
    opened by jonrimmer 87
  • [dart-dio] handle polymorphism + discriminator serialization

    [dart-dio] handle polymorphism + discriminator serialization

    This PR aims to add polymorphism support to dart-dio

    TODO:

    • [x] handle discriminator-based serialization/deserialization in schema with mapping specified - (how to handle it without mapping ?)
    • [x] change allOf handling to implement base class/classes instead of duplicating the members
    • [x] fix oneOf/anyOf support (done via https://pub.dev/packages/one_of)
    • [x] write tests for polymorphism

    PR checklist

    • [x] Read the contribution guidelines.
    • [x] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
    • [x] Run the following to build the project and update samples:
      ./mvnw clean package 
      ./bin/generate-samples.sh bin/configs/dart*
      ./bin/utils/export_docs_generators.sh
      
    • [x] If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

    @jaumard (2018/09) @josh-burton (2019/12) @amondnet (2019/12) @sbu-WBT (2020/12) @kuhnroyal (2020/12) @agilob (2020/12) @ahmednfwela (2021/08)

    Client: Dart Enhancement: Feature Feature: OAS 3.0 spec support 
    opened by ahmednfwela 72
  • Rewrite of TypeScript Generators

    Rewrite of TypeScript Generators

    Motivation

    We currently have 7 (!) different generators for TypeScript, which do not share common code. This makes introducing bug fixes to the TypeScript generator family very hard.

    Goal

    Create a general framework which can be used in any OOP language - unifying the generator structure and making the project easier to work with. At the beginning, I would like to look into merging the TypeScript generators into one and improve the architecture during the implementation.

    Feedback

    Tear the architecture apart! Focus on the bigger picture first (e.g. missing some important feature? something which is hard to implement with this architecture?) and then go into details (e.g. missing variables). The TODOs in the text below mark parts which I did not think (enough) about yet. Feel free to fill in what's missing.

    Architecture

    Architecture (looks weird if I include it as an image. sorry!)

    The key idea is to extract everything into its own component and hide it behind an interface. The key advantage of this architecture is

    • extendability e.g. new http libraries or more modifiers for requests e.g. a request is fed through multiple components which modify it according to their rules e.g. server sets the correct request url
    • testability - the components can be tested in isolation and can be mocked
    • less duplication of code for different frameworks in the same language

    I'll go through the different components one by one and try to explain the idea.

    HTTP Library

    This part should be clear - hide the details of making a HTTP request behind an interface so that we can use different libraries without changing the API Client. To achieve this we create our own data structures for requests and responses.

    TODO: Use promises/futures?

    Authentication

    Same idea as HTTP library. I want to highlight one part: the authentication interface has a method apply(Request r). This method applies the authentication scheme to the given request e.g. in the case of an API Key it would append the api key.

    TODO: OAuth work flow with this implementation?

    Response Models & Param Models

    TODO: Should this be separated or can response & param models be used interchangeably? i.e. param Pet can also be a response model? If yes these two components should be merged.

    This component contains model classes for each parameter & response as well as a (object) serializer and deserializer for these models (e.g. Array<JsonObject> in the API response is transformed to Array<Pet> by the ObjectDeserializer).

    Server

    This component contains the different servers as defined in OAS.

    TODO: handling of variables. I would propose to offer setters for each variable. Variables are not yet supported in OpenAPITools. See #793

    Config

    See current implementation.

    API Client

    The API client coordinates all other components.

    1. Serializes the input parameters
    2. creates a new request r
    3. calls Server#apply(r)
    4. calls `Authentication#apply(r)
    5. deserializes the response
    6. returns a promise with the deserialized response

    Callbacks in OAS 3

    TODO: create server, hide it behind an interface to make the library exchangeable and create one method for each callback endpoint.

    Framework Specific Code

    Anything framework specific goes here and acts as a proxy to APIClient.

    Technical Committee

    @TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01)

    Project

    William created a project for this issue: https://github.com/OpenAPITools/openapi-generator/projects/4

    Client: TypeScript Enhancement: New generator 
    opened by TiFu 71
  • Allow Spring generated code to use new OAS 3 annotations

    Allow Spring generated code to use new OAS 3 annotations

    • Add in oas3 option for Spring codegen to use newer annotations

    • Add useSpringController option for Spring codegen

    • Use useSpringfox to fix some unwanted imports for Spring codegen

    • Use jdk8 to add OffsetDateTime import for models in Spring codegen

    • Add JsonValue to enumOuterClass.mustache to allow enums to be generated properly

    • To test, use oas3: true useSpringController: true and useSpringfox: false in a config file to generate a Spring target.

    To close #9774

    PR checklist

    • [x] Read the contribution guidelines.
    • [x] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
    • [x] Run the following to build the project and update samples:
      ./mvnw clean package 
      ./bin/generate-samples.sh
      ./bin/utils/export_docs_generators.sh
      
    • [x] File the PR against the correct branch: master, 5.1.x, 6.0.x
    • [x] If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.
    Enhancement: Feature Server: Spring 
    opened by welshm 62
  • [CORE] Fixes composed schema discriminator map

    [CORE] Fixes composed schema discriminator map

    This PR improves how we define and handle discriminators. We have added a feature flag legacyDiscriminatorBehavior When it is set to false we:

    • define the CodegenDiscriminator on all models that have a discriminator, including the ones that allOf inherit it from an ancestor
    • fill in the discriminator MappedModels map with data from data from 6 sources (see them described below)
    • validate the discriminator presence: validate that oneOf or anyOf models contain the required discriminator. If they do not contain it helpful errors are thrown.

    I am doing this for the the below reasons:

    Not all codegen models use extend to make composed models. On generators that don't do that, they could lack the inherited discriminator. Python experimental is an example where we don't use class inheritance to allOf inherit parent classes/models. In that generator, discriminator is defined in each codegenModel, so we should not rely on java's composed schema inheritance solution to set a granparent's discriminator on a child model and a grandchild model that allOf inherit their ancestors.

    We also need to do this if we want the values of the CodegenDiscriminator MappedModels to differ from grandparent to parent to child. When we include the below 1-6 sources of MappedModels, the MappedModels map will differ depending upon which model you are looking at (grandparent/parent/child)

    My solution is to have the code set the discriminator on each model that contains a discriminator. Prior to this PR models that inherit a discriminator do not contain a discriminator. Then on that CodegenDiscriminator add the following to MappedModels:

    1. any mappings from the current or inherited schema Discriminator Mapping
    2. any x-discriminator-value mappings in:
      • child models that allOf inherit from the the current schema
      • oneOf models in the current schema
      • anyOf models in the current schema
    3. any child models that allOf inherit from the the current schema
    4. any descendent models that allOf inherit from the above child models
    5. oneOf models in the current schema
    6. anyOf models in the current schema

    Why Feature Flag This?

    • Some generators (javascript, probably others) implement discriminators differently and do not work if we set the flag to True. Cordoning this off behind the feature flag allows us to fix them later.
    • This is a really big change
    • I want to support legacy users who bring their old mustache files but use the latest generator code
    • Even though I could get all tests to pass, that does not mean that all models are being tested
      • When the flag is true, Java models Cat and Dog now have discriminators with empty maps. I do not know if that is okay.

    Background Context:

    When using oneOf or anyOf models with a discriminator in a parent composed schema, the discriminator map does not include the child oneOf models. This is because our existing java code was only covering the use case where there are descedant schemas which allOf inherit from the current schemas. It was not aware of and handling cases where the current schema is composed and there are oneOf any anyOf schemas that should be added to the discriminator MappedModels.

    Below is an example spec where the oneOf models should be in FruitRequiredDesc's discriminator map:

        FruitType:
          properties:
            fruitType:
              type: string
          required:
          - fruitType
        FruitRequiredDesc:
          oneOf:
            - $ref: '#/components/schemas/AppleRequiredDesc'
            - $ref: '#/components/schemas/BananaRequiredDesc'
          discriminator:
            propertyName: fruitType
        AppleRequiredDesc:
          type: object
          required:
            - seeds
          properties:
            seeds:
              type: integer
          allOf:
            - $ref: '#/components/schemas/FruitType'
        BananaRequiredDesc:
          type: object
          required:
            - length
          properties:
            length:
              type: integer
          allOf:
            - $ref: '#/components/schemas/FruitType'
    

    Test Verification

    • Many tests have been added, see the PR

    Related Issues

    If merged, this will close out https://github.com/OpenAPITools/openapi-generator/issues/4904

    • [X] Read the contribution guidelines.
    • [ ] If contributing template-only or documentation-only changes which will change sample output, build the project before.
    • [ ] Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
    • [X] File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
    • [X] Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

    Core Team: @wing328 (2015/07) @jimschubert (2016/05) @cbornet (2016/05) @ackintosh (2018/02) @jmini (2018/04) @etherealjoy (2019/06)

    Enhancement: General Feature: OAS 3.0 spec support 
    opened by spacether 53
  • [Typescript][Fetch] client refactoring

    [Typescript][Fetch] client refactoring

    PR checklist

    • [x] Read the contribution guidelines.
    • [x] Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
    • [x] Filed the PR against the correct branch: master, 3.1.x, 4.0.x. Default: master.
    • [x] Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

    Description of the PR

    This PR applies a fork of typescript-fetch that I originally created here: https://github.com/place1/swagger-codegen-typescript-browser

    The notable differences to the original typescript-fetch generator are outlines in the README.md

    The changes in this fork also address the following open issues on this repo:

    • #531
    • #347

    TODO:

    Confirm the this PR fixes the following known issues:

    • [x] swagger-api/swagger-codegen#8410 ensure that application/octet-stream responses come back as a blob
    • [x] swagger-api/swagger-codegen#2776 ensure that dates are deserialized
    • [x] swagger-api/swagger-codegen#7801 ensure that date params and date-array params are serialized

    Add support for:

    • [x] swagger-api/swagger-codegen#7828 add method overload to allow caller to receive native Response
    • [x] break models and operations out into multiple files

    General improvements:

    • [x] Find a better implementation for modelPropertyNaming. The current runtime conversion has known edge cases. Only a perfect implementation (i.e. based on the spec itself) should be acceptable for an option like modelPropertyNaming to exist.
    • [x] improve middleware api interface. use a single options object rather than many positional arguments
    Breaking change (without fallback) Client: TypeScript Enhancement: General Issue: Bug 
    opened by Place1 51
  • [ruby] fix oneOf handling

    [ruby] fix oneOf handling

    Fixes #3630.

    ~I have yet to update the documentation related templates and update the samples but opening now to gather initial feedback on the direction.~ 👌

    ~Basically, this builds up on the work from @bkabrda on the java and go experimental clients. I didn't go "ruby-experiemental" because the support of oneOf in the current ruby client is broken anyway.~ not doing this in the end.

    How it works is, in the spirit of the "oneof as interfaces" this creates a module, not a class, for oneOf models and provides a set of class methods related to the functionality. The core method is build_from_hash whose job in this case is to find the relevant oneOf item and transparently building and returning the correct model. It does so by using the discriminator if present, mapping if present and "falls back" to the existing validation-based look up.

    ~I changed some test yaml files to include more oneOf examples.~ no need in the end.

    If I try to do a before/after using the modified composed-one.yaml file, it goes like (some parts trimmed for brevity):

    openapi-generator generate -i composed-oneof.yaml -g ruby --library faraday -o ./out/ruby_oneof

    model files

    # current master
    custom_one_of_schema.rb
    obj_a.rb
    obj_b.rb
    obj_c.rb
    obj_d.rb
    
    # this branch
    custom_one_of_array_schema_one_of.rb
    custom_one_of_schema.rb
    obj_a.rb
    obj_b.rb
    obj_c.rb
    obj_c_data_one_of.rb
    obj_d.rb
    

    custom_one_of_schema.rb

    # current master
    module OpenapiClient
      class CustomOneOfSchema
        attr_accessor :realtype
    
        attr_accessor :message
    
        attr_accessor :description
    
        attr_accessor :code
    
        # Attribute mapping from ruby-style variable name to JSON key.
        def self.attribute_map
          {
            :'realtype' => :'realtype',
            :'message' => :'message',
            :'description' => :'description',
            :'code' => :'code'
          }
        end
    
        # Attribute type mapping.
        def self.openapi_types
          {
            :'realtype' => :'String',
            :'message' => :'String',
            :'description' => :'String',
            :'code' => :'Integer'
          }
        end
    
        # List of attributes with nullable: true
        def self.openapi_nullable
          Set.new([
          ])
        end
    
        # List of class defined in oneOf (OpenAPI v3)
        def self.openapi_one_of
          [
          :'ObjA',
          :'ObjB'
          ]
        end
    
        # discriminator's property name in OpenAPI v3
        def self.openapi_discriminator_name
          :'realtype'
        end
    
        # Initializes the object
        # @param [Hash] attributes Model attributes in the form of hash
        def initialize(attributes = {})
    
    # another 200 lines of model code...
    
    # this branch
    module OpenapiClient
      module CustomOneOfSchema
        # List of class defined in oneOf (OpenAPI v3)
        def self.openapi_one_of
          [
            :'ObjA',
            :'ObjB'
          ]
        end
    
        # discriminator's property name in OpenAPI v3
        def self.openapi_discriminator_name
          :'realtype'
        end
    
        # discriminator's mapping in OpenAPI v3
        def self.openapi_discriminator_mapping
          {
            :'a-type' => :'ObjA',
            :'b-type' => :'ObjB'
          }
        end
    
        # Builds the object from hash
        # @param [Hash] attributes Model attributes in the form of hash
        # @return [Object] Returns the model itself
        def self.build_from_hash(attributes)
          discriminator_value = attributes[openapi_discriminator_name]
          return nil unless discriminator_value
    
          _class = openapi_discriminator_mapping[discriminator_value.to_sym]
          return nil unless _class
    
          OpenapiClient.const_get(_class).build_from_hash(attributes)
        end
      end
    
    end
    

    Noteworthy is in the obj_c.rb the nested oneOf property has its model generated, albeit with a sligthly different name:

    # current master
        def self.openapi_types
          {
            :'realtype' => :'String',
            :'data' => :'OneOfObjAObjB'  # <==== model not generated!
          }
        end
    
    # this branch
        def self.openapi_types
          {
            :'realtype' => :'String',
            :'data' => :'ObjCDataOneOf'  # <==== "interface" module generated
          }
        end
    

    Limitations / bugs / food for thought

    • Interestingly, a custom_one_of_array_schema_one_of.rb "interface" module is now generated but the oneOf is taking place inside the items. I'm not sure this solution is going to work here. In this case maybe a regular model should be generated alongside some custom_one_of_array_schema_one_of_items.rb "interface" module? @bkabrda how do the java and experimental go clients fare in this case?
    • In java the interface pattern used in this PR makes the models referenced in a oneOf carry the "dynamic" props illustrated in ObjD. https://github.com/OpenAPITools/openapi-generator/pull/4695 sort of discourages that pattern but I guess if the tool can do it, why not. What could be improved in the case of ruby though is to make some "dynamicProps" module in the interface module and dynamically include the props at runtime upon deserializing. Performance may not be stellar so it's trade off between "pureness" of the models and speed I guess.

    PR checklist

    • [x] Read the contribution guidelines.
    • [x] If contributing template-only or documentation-only changes which will change sample output, build the project before.
    • [x] Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
    • [x] File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
    • [x] Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

    @cliffano (2017/07) @zlx (2017/09) @autopp (2019/02)

    Client: Ruby Enhancement: Feature Feature: OAS 3.0 spec support 
    opened by jfeltesse-mdsol 47
  • [Java][client] make it possible to send explicit nulls for nullable fields

    [Java][client] make it possible to send explicit nulls for nullable fields

    PR checklist

    • [x] Read the contribution guidelines.
    • [x] Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\. If contributing template-only or documentation-only changes which will change sample output, be sure to build the project first.
    • [x] Filed the PR against the correct branch: master, 4.1.x, 5.0.x. Default: master.
    • [x] Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

    CC @bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04)

    Description of the PR

    This is my attempt to fix https://github.com/OpenAPITools/openapi-generator/issues/3435. Basically it makes sure that explicit null values can be sent for nullable fields:

    • For a required nullable field, the null is always sent when that's the value.
    • For an optional (not required) nullable field, I introduced a simple new Optional class with OptionalFilter that make sure that the null is sent if and only if it was set explicitly. AFAICS, the API of any of the generated classes didn't change in a backwards-incompatible way.

    Discussion points:

    • I added the Optional since java.util.Optional was added in JDK 8 and the templates still have support for previous Java versions. If desired, I can replace this with a different (third party) implementation pretty easily.
    • I didn't run the ./bin/... generators yet to keep the PR clean and reviewable. I'm planning to run it later.
    • I only added this for jackson, as I didn't figure out an easy way to do this for gson. I could try working on a different PR that would do this for gson, but that would take me a lot more time.
    Client: Java Enhancement: Feature Feature: OAS 3.0 spec support 
    opened by bkabrda 47
  • [php] use http_build_query for deepObject support

    [php] use http_build_query for deepObject support

    This fixes #11222

    The Query::build() function does not support deepObjects in query params, but the OpenAPI defintion does.

    /users?id[role]=admin&id[firstName]=Alex an example from the docs.

    I have replaced the Query::build() function with PHP's internal http_build_query function. I have adjust PHP default encoding to match the default encoding from Query::build() which is PHP_QUERY_RFC3986.

    This change will only have an effect for the query string of the URL, encoding POST bodys is still done by Query::build().

    Client: PHP Issue: Bug 
    opened by nadar 44
  • [Dart2] Add initial support to use an isolate to offload JSON serialization/deserialization

    [Dart2] Add initial support to use an isolate to offload JSON serialization/deserialization

    I have noticed that as my API grew and its associated data requirements grew with it, a Flutter app I work on started showing hickups (jank) when a lengthy JSON hit the wire. So, I wanted to offload to a compute() function but was unable due to the fact that ApiClient._deserialize is private. Hence this pr.

    In addition, I had to adjust the signatures of some functions and methods to be futures and that means that this pr is not backward-compatible. So if users have overridden serialize() or deserialize() then they'll need to update their code to match the new signature. A matter of 5 minutes but the change allows a better concurrency regardless if one uses an isolate or not.

    PR checklist

    • [X] Read the contribution guidelines.
    • [X] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
    • [X] Run the following to build the project and update samples:
      ./mvnw clean package 
      ./bin/generate-samples.sh
      ./bin/utils/export_docs_generators.sh
      

      Commit all changed files. This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master. These must match the expectations made by your contribution. You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*. For Windows users, please run the script in Git BASH.

    • [X] File the PR against the correct branch: master, 5.1.x, 6.0.x
    • [X] If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

    @ircecho (2017/07) @swipesight (2018/09) @jaumard (2018/09) @athornz (2019/12) @amondnet (2019/12) @wing328 @sbu-WBT @agilob

    Client: Dart Enhancement: General 
    opened by noordawod 44
  • [Dart-Dio-Next]#9082 Add json_serializable serialization option

    [Dart-Dio-Next]#9082 Add json_serializable serialization option

    This is a WIP/PoC to add json_serializable as an alternative to built_value in the Dart-Dio-Next generator.

    For context: We would like to migrate our Flutter app to full null safety, and so we are migrating from the old Dart generator to Dart-Dio-Next.

    We have found that moving from models with to/fromJson methods to using built_value has made the job of migrating bigger and riskier than we'd like. We need to rewrite large chunks of our existing persistence layer and other parts.

    Adding json_serializable as an option has mostly involved reworking existing templates in the old Dart generator to generate null safe code.

    Fixes #9082

    @swipesight @jaumard @josh-burton @amondnet @sbu-WBT @kuhnroyal @agilob

    PR checklist

    • [X] Read the contribution guidelines.
    • [x] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
    • [x] Run the following to build the project and update samples:
      ./mvnw clean package 
      ./bin/generate-samples.sh
      ./bin/utils/export_docs_generators.sh
      

      Commit all changed files. This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master. These must match the expectations made by your contribution. You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*. For Windows users, please run the script in Git BASH.

    • [X] File the PR against the correct branch: master, 5.3.x, 6.0.x
    • [x] If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.
    Client: Dart Enhancement: Feature 
    opened by MichaelMarner 39
  • [Java][Spring] Fix #14398 springboot 3 schema required

    [Java][Spring] Fix #14398 springboot 3 schema required

    Fix for #14398

    Schema#required is depricated since 2.2.5 and replaced by requiredMode.

    OAS3 required parameter is of type boolean and defaults to false thus I used Schema.RequiredMode.NOT_REQUIRED when required is false.

    PR checklist

    • [x] Read the contribution guidelines.
    • [x] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
    • [x] Run the following to build the project and update samples:
      ./mvnw clean package 
      ./bin/generate-samples.sh
      ./bin/utils/export_docs_generators.sh
      

      Commit all changed files. This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master. These must match the expectations made by your contribution. You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*. For Windows users, please run the script in Git BASH.

    • [x] File the PR against the correct branch: master (6.3.0) (minor release - breaking changes with fallbacks), 7.0.x (breaking changes without fallbacks)
    • [x] If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.
    opened by parenko 0
  • typescript-nestjs  [REQ] Add documentation for typescript-nestjs

    typescript-nestjs [REQ] Add documentation for typescript-nestjs

    Is your feature request related to a problem? Please describe.

    There is no guidance on how to use the generated output of the typescript-nestjs generator. I do not know how to use these files and what needs to be configured.

    Describe the solution you'd like

    A very basic example of how to actually use one of the generated services.

    Describe alternatives you've considered

    Looking through the code has not given me enough information to get it to running without errors.

    Enhancement: Feature 
    opened by ChristopherCapito 0
  • Update CLI module dependencies

    Update CLI module dependencies

    Update CLI module dependencies

    PR checklist

    • [x] Read the contribution guidelines.
    • [x] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
    • [x] Run the following to build the project and update samples:
      ./mvnw clean package 
      ./bin/generate-samples.sh
      ./bin/utils/export_docs_generators.sh
      

      Commit all changed files. This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master. These must match the expectations made by your contribution. You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*. For Windows users, please run the script in Git BASH.

    • [x] File the PR against the correct branch: master (6.3.0) (minor release - breaking changes with fallbacks), 7.0.x (breaking changes without fallbacks)
    • [x] If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

    FYI @OpenAPITools/generator-core-team

    Enhancement: Compatibility OpenAPI Generator CLI 
    opened by wing328 0
  • [Java][Spring] fix default response code

    [Java][Spring] fix default response code

    fix for https://github.com/OpenAPITools/openapi-generator/issues/14394

    PR checklist

    • [x] Read the contribution guidelines.
    • [x] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
    • [x] Run the following to build the project and update samples:
      ./mvnw clean package 
      ./bin/generate-samples.sh
      ./bin/utils/export_docs_generators.sh
      

      Commit all changed files. This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master. These must match the expectations made by your contribution. You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*. For Windows users, please run the script in Git BASH.

    • [x] File the PR against the correct branch: master (6.3.0) (minor release - breaking changes with fallbacks), 7.0.x (breaking changes without fallbacks)
    • [x] If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.
    opened by borsch 3
  • [BUG][Java Spring OAS3] Deprecated @Schema(required) annotation property is generated

    [BUG][Java Spring OAS3] Deprecated @Schema(required) annotation property is generated

    Bug Report Checklist

    • [x] Have you provided a full/minimal spec to reproduce the issue?
    • [X] Have you validated the input using an OpenAPI validator (example)?
    • [X] Have you tested with the latest master to confirm the issue still exists?
    • [X] Have you searched for related issues/PRs?
    • [X] What's the actual output vs expected output?
    Description

    When using the spring generator, the fields in the generated POJOs are annotated with @Schema(required = true | false), which is now deprecated. Instead, the requiredMode should be used.

    openapi-generator version

    6.2.1

    OpenAPI declaration file content or url
    openapi: 3.0.3
    info:
      title: Api Documentation
      description: Api Documentation
      termsOfService: urn:tos
      contact: {}
      license:
        name: Apache 2.0
        url: http://www.apache.org/licenses/LICENSE-2.0
      version: '1.0'
    paths: {}
    components:
      schemas:
        ResponseEntry:
          type: object
          required:
            - id
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
    
    Actual output

    Something along the lines of:

      @NotNull @Valid 
      @Schema(name = "id", required = true)
      @JsonProperty("id")
      private UUID id;
    
      @Schema(name = "name", required = false)
      @JsonProperty("name")
      private String name;
    
    Expected output

    Something along the lines of:

      @NotNull @Valid 
      @Schema(name = "id", requiredMode = Schema.RequiredMode.REQUIRED)
      @JsonProperty("id")
      private UUID id;
    
      @Schema(name = "name", requiredMode = Schema.RequiredMode.NOT_REQUIRED) // or .AUTO, here I'm not sure which would be better
      @JsonProperty("name")
      private String name;
    
    Suggest a fix

    Update the pojo.mustache file (plus anything that might be using the same annotation property).

    Issue: Bug 
    opened by whydoievenneedthis 0
  • [BUG] API class descriptions / tag descriptions are not rendering

    [BUG] API class descriptions / tag descriptions are not rendering

    Bug Report Checklist

    • [X] Have you provided a full/minimal spec to reproduce the issue?
    • [X] Have you validated the input using an OpenAPI validator (example)?
    • [X] Have you tested with the latest master to confirm the issue still exists?
    • [X] Have you searched for related issues/PRs?
    • [X] What's the actual output vs expected output?
    • [ ] [Optional] Sponsorship to speed up the bug fix or feature request (example)
    Description

    API class descriptions / tag descriptions are rendering as empty.

    Take the official PHP template, which includes a class-level {{#description}} for its APIDoc template:

    # {{invokerPackage}}\{{classname}}{{#description}}
    
    {{.}}{{/description}}
    
    All URIs are relative to {{basePath}}, except if the operation defines another base path.
    

    {{#description}} always renders empty, despite having tag descriptions in the OpenAPI Spec.

    openapi-generator version

    6.2.1

    OpenAPI declaration file content or URL

    Use the official PetStore API Spec, which includes these tag descriptions:

    openapi: 3.0.0
    tags:
      - name: pet
        description: Everything about your Pets
      - name: store
        description: Access to Petstore orders
      - name: user
        description: Operations about user
    
    Generation Details

    Generate a PHP client:

    openapi-generator-cli generate -g php \
      -i https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
      -o temp-php-client
    

    See the generated result (docs/Api/PetApi.md):

    # OpenAPI\Client\PetApi
    
    All URIs are relative to http://petstore.swagger.io/v2, except if the operation defines another base path.
    

    See the template (official PHP template):

    # {{invokerPackage}}\{{classname}}{{#description}}
    
    {{.}}{{/description}}
    
    All URIs are relative to {{basePath}}, except if the operation defines another base path.
    

    Notice how the PHP generator seems to support an API class-level description, yet doesn't render it (at least from the tag description... I'm not sure where else it would be reading this from?). I have a feeling many of the other generators exhibit this same behaviour (i.e. have a API class-level description but without any way of rendering content into it from the spec).

    Steps to reproduce

    See Generation Details (above).

    Issue: Bug 
    opened by ljwagerfield 0
Releases(v6.2.1)
  • v6.2.1(Nov 1, 2022)

    v6.2.1 is a patch release with 140+ commits including bug fixes and enhancements for 10+ programming languages. kotlin client generator now also supports Vert.x library. As always we appreciate the contributions from the community.

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    General

    • Update dependencies for CVE #13834

    C#

    • [csharp-netcore] Allowing user to set client package #13785
    • [csharp] Fixed data type for maps of maps #13701

    Crystal

    • [Crystal] Map AnyType to Object #13737
    • [Crystal] Allow double colons in model name #13736

    Elixir

    • Elixir: Improve generated API options docs #13478

    Elm

    • [elm] add function to allow more fine grained error handling #13773

    Go

    • [GO] fix: stops checking for nil for structs https://github.com/OpenAPITools/openapi-generator/pull/13843
    • [go-echo-server] update echo to newer version #13732

    JavaScript

    • [JavaScript] add oneOf support #13561

    Java

    • [Java][okhttp-gson] Minor improvements https://github.com/OpenAPITools/openapi-generator/pull/13864
    • Java jersey OAuth2 add support for public client #13828
    • [JAVA] [NATIVE] Fix exploded query parameters with array property #13656
    • Spring request mapping mode #13838
    • [Java][jaxrs-spec] Make contextPath template parameter available as a string constant for use in @ApplicationPath #13377

    Kotlin

    • [Kotlin]Reducing code smells #13703
    • Added Kotlin Vert.x client #13594

    PHP

    • [PHP] handle properly multiple accept headers https://github.com/OpenAPITools/openapi-generator/pull/13844
    • [PHP] Allow selecting Content-Type #13769
    • [PHP-Symfony] Encourage Symfony 5 bundle directory structure best practices #13014

    Python

    • [python] fixes required prop in composed schema, prop not in properties, addProps unset #13819
    • [python] Fixes endpoint overload type hint + required property not in properties #13790
    • [python] Fixes bugs #13581
    • [python] fix for issue #13722: send body for application/x-www-form-urlencoded data #13723

    R

    • Better error handling in the R client #13800

    Rust

    • [rust] [rust-server] More abstract functions including integer fitting #13503
    • [rust] Fix generation for optional and nullable fields (double option pattern) #13177

    Swift

    • [swift5] update new minimum OS supported versions #13667
    • [swift5] fix generation of multiple security definitions #13617
    Source code(tar.gz)
    Source code(zip)
  • v6.2.0(Sep 24, 2022)

    v6.2.0 is a minor release with one important breaking change (with fallback). The python generator has been refactored (replaced with python-experimental) with breaking changes. Please give it a try and let us know if you've any feedback.

    Given that python-experimental contains breaking changes, users can fallback to python-prior after this PR if they prefer not to upgrade at the moment for whatever reasons.

    After the PR, the future development of python (which follows a JSON schema focused design) will be moved to a new project named "openapi-json-schema-generator" under https://github.com/openapi-json-schema-tools. If you've any questions, feedback or issues, please open a ticket. Anyone wants to contribute a client/server generator with a focus on JSON schema should contribute to "openapi-json-schema-generator".

    At the same time, @wing328 is leading an effort to create a new Python client generator based on the design of other popular clients in this project such as Java, C#, PHP, Ruby and more to make the overall developer experience more consistent. The goal is to have the new Python client generator replacing/sunsetting all existing python client generators in the openapi-generator project at the moment for easier maintenance.

    Python

    • Switches python-experimental in as the primary python client https://github.com/OpenAPITools/openapi-generator/pull/13501
    • [python-experimental] removes enum cls factory https://github.com/OpenAPITools/openapi-generator/pull/13491
    • [python-experimental] reduces python version to 3.7 https://github.com/OpenAPITools/openapi-generator/pull/13481
    • [python-experimental] improves documentation https://github.com/OpenAPITools/openapi-generator/pull/13477
    • [python-experimental] Fix error message https://github.com/OpenAPITools/openapi-generator/pull/13471
    • [python-experimental] simplifies type checking https://github.com/OpenAPITools/openapi-generator/pull/13437
    • [python-experimental] adds more base class mixins, preparation for v3.1.0 type arrays https://github.com/OpenAPITools/openapi-generator/pull/13436
    • [python-experimental] Enhance octet-stream deserialize https://github.com/OpenAPITools/openapi-generator/pull/13402
    • Adds IJsonSchemaValidationProperties format getter and setter +uses the format info https://github.com/OpenAPITools/openapi-generator/pull/13360

    For a full list of changes, please refer to the "Pull Request" tab.

    Source code(tar.gz)
    Source code(zip)
  • v6.1.0(Sep 11, 2022)

    v6.1.0, which contains breaking changes with fallback, includes 280+ PRs covering 20+ programming languages from the community.

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    General

    • Update jackson-databind to newer version #13391
    • Adds $ref data to schema classes #13163
    • Allow override CodegenConfigurator in GenerateTask in OpenAPI Generator Gradle Plugin #13140
    • Fixes fromProperty so it retrieves the correct instance depending upon if the property is required or not 12858
    • Adds getIsBooleanSchemaTrue/getIsBooleanSchemaFalse to store is a schema was defined as boolean schema true or false 13341
    • Adds requiredVarsMap to store required vars even if those variables do not exist in properties or if additionalProperties is false 13117

    Avro

    • Avro fix arrays with items as a ref to defined enum #13162

    C

    • [C][Client] Treat "null" as a valid value for a field of a JSON map #13352

    C#

    • [csharp-netcore] To support Secret API key input as string #13276
    • Added support for inheritance in Swashbuckle in ASP.NET Core #12856

    C++

    • [cpp-ue4] Support UE5 version of FTickerObjectBase #13304
    • [cpp-pistache-server] Fix enum generation for mode useStructModel=true #13249

    Dart

    • Make "applyToParams" a Future + add "this." when decoding JSON #13120

    Go

    • [Go] Fix missing import for array/map of file #13143

    HTML

    • Fix syntax error in generated html #13293

    Java

    • fix: ensure Resteasy JAX-RS Response object closed #13333
    • [jaxrs-spec] fix default values for array #13076
    • [Java] apache-httpclient serialize support custom contentType #13058

    JavaScript

    • Combine javascript and javascript-apollo generators #13270

    k6

    • Better handling of NPE in k6 client generator #13236

    Kotlin

    • Fix generation of default array values for kotlin client #13243

    Perl

    • Fix Perl cannot string bind undef #13114

    PHP

    • [PHP] double curly braces bugfix #12999
    • [PHP] Add support for server variables in operations #12982

    PowerShell

    • [powershell] cache model name for faster lookup #12917

    ProtoBuf

    • Fix protobuf variable name #13296

    Python

    • [python-experimental] adds and uses regex patterns for json + filename detection 13357
    • [python-experimental] refactoring and type hint additions/improvements. instance["someProp"] type hints added
    • [python-experimental] verifies 11434 was fixed with test 13358
    • [python-experimental] improves json content-type detection 13356
    • [python-experimental] improves additionalProperties processing 13347
    • [python-experimental] adds endpoint generation by paths, eliminates duplicate endpoint generation 13007
    • [python-experimental] adds auto generated endpoint tests of serialization/deserialization 12875 13323 12988
    • [python-experimental] handles use case where tag exists on endpoint but does not exist in the spec tags section 13054
    • [python-experimental] improves docs, adds migration guide 13210
    • fix deepcopy for allOf schemas 13130

    R

    • [R] support explode (true/false) in query array parameters #13364
    • [R] Add httr2 support #13005

    Ruby

    • [Ruby] add useAutoload option to use autoload instead of require #13153

    Rust

    • [rust] [rust-server] Add AbstractRustCodegen (breaking changes with fallback) #13231
    • Cleaned up cargo clippy warnings #13011

    Scala

    • [scala][sttp] fix enum generation for inline-enum of array #13250

    Swift

    • [swift5] distinguish (un-)authenticated requests #13321

    TypeScript

    • [typescript-nestjs] Upgrade to NestJS v8 (Breaking change with fallback) #12937
    Source code(tar.gz)
    Source code(zip)
  • v6.0.1(Jul 3, 2022)

    v6.0.1 is a patch release with enhancements, bug fixes covering 20 programming languages. As always, we appreciate the contributions from the awesome OpenAPI Generator community.

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    General

    • Idea plugin for marking source directories, and omitting gradle wrapper #12711
    • Fix bugs in camelcase lambda, add tests for pascalcase #12639
    • Add new option to customize inline model naming convention #12562
    • Adds the ability to process and use model test cases, uses it in a new v3.0.3 unit test spec #12619

    C

    • [C][Client] Set the default value for the null json #12620
    • [C][Client] Support free-form objects #12557

    C#

    • [csharp-netcore] fix: url escaping #12739
    • [csharp-netcore] Add support for ComVisible, CLSCompliant attributes #12733
    • Fix NPE when generating examples for parameter (object) #12538

    C++

    • [BUG] [CPP-UE4] Fix codegen for nested container types #12747
    • [cpp-qt-client] Add support for AnyType objects #12642

    Crystal

    • [crystal][client] Skip generating operation examples when flag is set #12539

    Dart

    • [Dart][Client] Support parsing DateTime #12433

    Documentation

    • [html2] added recursion for nested objects #12428

    Elixir

    • Improved Elixir Code Generation #12751

    Elm

    • Fix for invalid elm code for paths containing UUIDs #12506

    Go

    • [Go] use EqualFold instead instead of comparing strings in lower case #12741

    GraphQL

    • Graphql nodejs express server lists fixup #12476

    Haskell

    • [haskell-http-client] relax Aeson constraint to allow Aeson 1 #12486

    Java

    • Update jackson databind to 2.12.6.1 #12698
    • [Java] Update jackson-databind-nullable to 0.2.3 #12693
    • [Java] Update RESTEasy lib to newer version #12688
    • Fix HTML-escaped token and authorization URLs in Java libraries #12677
    • [java][okhttp-gson] Keep AST small when using builder #12610
    • [Spring] Fix cookies in parameters are always generated as required #12599

    Kotlin

    • [Kotlin][Client] replace java.nio.* to avoid crash on Android API 25 and bellow #12529
    • [Kotlin] fix invalid code when allOf is used #12594

    OCaml

    • [OCaml] Code generation fixes #12395

    PHP

    • [PHP] Enhance Symfony generator #12532
    • [php] fix @implements annotations in PHP client #11908

    PowerShel

    • [PowerShell] support enum integers #12752

    Python

    • Fixes double serialization bug in python-experimental #12561
    • Adds sample client for v3.0.3 unit test spec including autogenerated model tests, test run in CI #12619
    • Fixes GetItem not working for Client generated allOf model and broken since 5.2.0 #12239
    • Use print() function in both Python 2 and Python 3 #12467

    Rust

    • Fixes double 'String' on string & UUID type #12409

    R

    • [R] Add toString method to oneOf/anyOf objects #12727
    • [R] Fix nested oneOf/anyOf #12723
    • [R] fix deserialization for models with special item names #12658

    Swift

    • [swift5] Make it possible to opt out of JSONEncodable conformance #12664

    TypeScript

    • [typescript-fetch] Support error handler in middleware #12716
    • fix typescript node default enum #12633
    Source code(tar.gz)
    Source code(zip)
  • v6.0.0(May 26, 2022)

    We're happy to announce the release of v6.0.0 - a major release with lots of enhancements and bug fixes. More than 400 PRs contributed by the awesome OpenAPI Generator community have been included in this release.

    For a list of breaking changes, please refer to the following:

    For a list of generators/frameworks that have been deprecated/decommission, please refer to this list

    General

    • [Inline model resolver] Better support for inline schemas in parameters #12369
    • [Inline model resolver] better handling of inline responses and bug fixes #12353
    • [Inline model resolver] Fix inline allOf in request body #12348
    • [Inline model resolver] various improvements #12293
    • [Inline model resolver] Better inline model resolver to handle inline schema in array item #12104
    • Use LinkedHashMap for deterministic iteration order #12230
    • Configure apiNameSuffix via maven/gradle plugins #12062
    • fix: respect configured generator URL in swagger config #12064
    • Process additionalProperties: true as arbitrary type instead of object #11802

    Ada

    • [Ada] Fix typo in final Info message #11914

    Android

    • [Android] only support JDK8+ #11917

    C

    • [C][Client] Eliminate compiler warnings #12260
    • [C][Client] Free list or map memory when json parsing fails #11866

    C#

    • [aspnetcore] Include appsettings.Development.json #12217
    • [csharp-netcore] Add support for byte[] response deserialization #12188
    • [csharp-netcore] Composed primitives support in generichost #11924
    • [csharp-netcore] Fix incorrect FileParameter deserialization #11850

    C++

    • [cpp-qt][client] add support for primitives types body #12301
    • [cpp-rest] better handling of property name with special characters #12288
    • [C++][Pistache] Add support for validating arrays, use full namespace type with custom types #12221
    • [cpp-restsdk] Change build folder structure to match include folder structure in installed client #11487

    Documentation

    • Add - Status colors in Wiki, Example per parameter #12394
    • Confluence Wiki - Escape special characters #11786

    Dart

    • [dart] Bump min dio version to prevent unused import #12354
    • [Dart] jaguar remove in 6.x #10534

    Elixir

    • Allow the baseUrl of elixir APIs to be overridden #12268

    Go

    • [GO] Fix exception in constructExampleCode with oneOf primitive type #12362
    • [Go] fix oneOf naming #11863

    Haskell

    • [haskell-http-client] Update haskell-http-client generator to Aeson 2.x #12309
    • Upgrade haskell-servant to latest LTS #12092

    Java

    • [java-micronaut] Allow default implementation to return HTTP 501 #12365
    • Playframework oauth small upgrade #12332
    • [java][resttemplate] avoid StringIndexOutOfBoundsException on empty HttpHeaders #12327
    • [Micronaut] Improvements for Server and Client #12297
    • [java] Add jersey3 support to the Java client #12046
    • Upgrade to Spring Boot 2.6.6/2.5.12 and Spring Cloud 2021.0.1 #12027
    • [java][jersey2] update junit from 4.x to 5.x (major upgrade) #11898
    • [java native] Support arrays in QueryParameters deepObject style #11699
    • Remove JDK7 support from Java Spring generators #11561

    JavaScript

    • [JS] Remove ES5 support #12033

    Kotlin

    • [BUG][Kotlin-client] Handling default values of parameters #12255
    • [kotlin-server][jaxrs-spec] Remove obsolete imports from API template #11899
    • [kotlin][spring] Rename extension to conform to kebab-case #1189
    • Remove JDK 6, 7 supports in kotlin templates #11560

    Perl

    • Fix Perl client header params #11713

    PHP

    • [php] Bump required PHP version to 7.4 #12359
    • [php-slim4] Add minimal GitHub Action config #11874
    • [PHP] Fix deprecations in PHP 8.1 #11743
    • [php-slim4] Add lazy CORS implementation #11941

    Python

    • [python-experimental] fixes delete endpoint with no body use case #12287
    • [python-flask] Fix mypy error type annotation needed #12272
    • Fix issue with fastapi generator converting all fields to snake_case #12261

    PowerShell

    • [PowerShell] better enum model support #12082

    Protobuf

    • [Protobuf-Schema] Add enum prefix #11548

    R

    • [R] Use snake_case in method parameter names #12390 Breaking change (without fallback)
    • [R] update .Rbuildignore with more files/directories #12383
    • [R] fix warnings in DESCRIPTION #12380

    Ruby

    • [Ruby] Add support for faraday 2.x #12112

    Rust

    • Better handling of version in Rust client #12284
    • [Rust][Server] Upgrade to tokio v1 #11873

    Scala

    • [Scala][sttp] various bug fixes #12254
    • [scala-akka-http-server] model default value when field is not required #12068

    Swift

    • [swift5] Abstract away URLSession #12110

    TypeScript

    • [typescript-fetch] Support Sets in query parameters (when uniqueItems=true) #12318
    • [typescript*] drop support typescript below 4.0 #12123

    wsdl

    • [Wsdl] Adding cli-option for generating different versions of WSDL-files regarding Media type versioning (content negotiation) #12206
    Source code(tar.gz)
    Source code(zip)
  • v6.0.0-beta(Apr 4, 2022)

    What's Changed

    • [typescript-axios] Properly emit module as ES6 instead of commonJS when using ES6 by @ferferga in https://github.com/OpenAPITools/openapi-generator/pull/10308
    • [typescript-axios] Use CommonJS when using ES5 as target as per Typescript docs by @ferferga in https://github.com/OpenAPITools/openapi-generator/pull/10316
    • [Dart] jaguar remove in 6.x by @agilob in https://github.com/OpenAPITools/openapi-generator/pull/10534
    • Flash: remove by @agilob in https://github.com/OpenAPITools/openapi-generator/pull/10535
    • [java][jersey2] Rename enum constants by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/10631
    • [Java][okhttp] rename enum by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/10642
    • [java] use IllegalArgumentException instead of RuntimeException by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/10745
    • [csharp] Use the provided 'sourceFolder' property to generate the test folder by @Starkie in https://github.com/OpenAPITools/openapi-generator/pull/10738
    • Remove kotlin-server-deprecated generator by @agilob in https://github.com/OpenAPITools/openapi-generator/pull/10851
    • Remove deprecated TypeScriptAngularJsClientCodegen by @agilob in https://github.com/OpenAPITools/openapi-generator/pull/10850
    • Remove deprecated PhpSilexServerCodegen by @agilob in https://github.com/OpenAPITools/openapi-generator/pull/10852
    • [java][okhttp-gson-nextgen] Fix OAuth enum name by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11210
    • Dart - update generator to support null safety by @agilob in https://github.com/OpenAPITools/openapi-generator/pull/10637
    • [Go] Parse integer array query parameters. Fix typos by @aliakseiz in https://github.com/OpenAPITools/openapi-generator/pull/11105
    • Revert supports for delete body in typescript-angular client by @cghislai in https://github.com/OpenAPITools/openapi-generator/pull/10976
    • Typescript-fetch: date is only converted to javascript date with runtime checks enabled by @kasperpeulen in https://github.com/OpenAPITools/openapi-generator/pull/11481
    • [typescript-rxjs] add rxjs 7 support by @denyo in https://github.com/OpenAPITools/openapi-generator/pull/9958
    • Adds inline composition examples to python-experimental by @spacether in https://github.com/OpenAPITools/openapi-generator/pull/11420
    • [TypeScript] Fix type array with uniqueItems by @ty-v1 in https://github.com/OpenAPITools/openapi-generator/pull/11515
    • [python-experimental] adds missing bases, performance improvements by @spacether in https://github.com/OpenAPITools/openapi-generator/pull/11517
    • [Java] [Feign] Fix duplicated Authorization headers when renewing a token on a retry by @ruijlpires in https://github.com/OpenAPITools/openapi-generator/pull/11513
    • Fix ClassCastException if expected type is Object by @lbilger in https://github.com/OpenAPITools/openapi-generator/pull/11510
    • [java][feign] fix javadoc warnings by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11527
    • [Python] add missing } in __init__model.mustache by @zarlo in https://github.com/OpenAPITools/openapi-generator/pull/11474
    • [Bug][Java/Spring] OAS3 related bugfixes and enhancements by @cachescrubber in https://github.com/OpenAPITools/openapi-generator/pull/11526
    • [csharp-netcore] Add generichost samples by @devhl-labs in https://github.com/OpenAPITools/openapi-generator/pull/11451
    • Add cycle detection (#7532) by @eak24 in https://github.com/OpenAPITools/openapi-generator/pull/11500
    • [C++][Pistache] fix float literals in C++ Pistache codegen by @JulianGmp in https://github.com/OpenAPITools/openapi-generator/pull/11483
    • [csharp-nancyfx] Delete NancyFX by @devhl-labs in https://github.com/OpenAPITools/openapi-generator/pull/11438
    • [csharp-netcore]: Remove unused UrlEncode method from csharp-netcore template. by @jafin in https://github.com/OpenAPITools/openapi-generator/pull/11453
    • Add Numary as bronze sponsor of the project by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11539
    • [java][Okhttp] replace okhttp-gson with okhttp-gson-nextgen by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11538
    • [java][okhttp-gson] Update build.gradle, build.sbt by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11543
    • [C#] test .net6 projects in Github actions by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11544
    • Update swagger core, jackson to newer version by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11545
    • Upgrade Scala sttp client generator to sttp3 by @borissmidt in https://github.com/OpenAPITools/openapi-generator/pull/11260
    • mockito 4.3.1 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11549
    • [Swift5][client] try to fix JsonEncondable by @4brunu in https://github.com/OpenAPITools/openapi-generator/pull/11541
    • Remove the option to support JDK7 from Java generator and templates by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11547
    • [Java] remove tabs from java templates by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11557
    • Replace tabs with spaces in JavaScript templates by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11559
    • [jax-rs] Remove JDK 6 support by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11558
    • Remove JDK 6, 7 supports in kotlin templates by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11560
    • Fix for multible tags in @Operation annotation by @ugrave in https://github.com/OpenAPITools/openapi-generator/pull/11475
    • [PHP] Fix checking value of Configuration::getAccessToken() by @jtreminio in https://github.com/OpenAPITools/openapi-generator/pull/11486
    • [Kotlin][Multiplatform] Upgrade Kotlin to version 1.6.0 by @tkirshboim in https://github.com/OpenAPITools/openapi-generator/pull/11022
    • Update Micronaut to 3.3.1 by @sdelamo in https://github.com/OpenAPITools/openapi-generator/pull/11569
    • [java][vertx] moved HttpStatusException (vertx internal) to HttpException (public) by @seanbrown-com in https://github.com/OpenAPITools/openapi-generator/pull/11550
    • [Bug][Java] defaultValues for date and date-time params by @cachescrubber in https://github.com/OpenAPITools/openapi-generator/pull/11536
    • [spring] various bug fixes and enhancements by @cachescrubber in https://github.com/OpenAPITools/openapi-generator/pull/11580
    • [Java] fix deserialization of readonly properties by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11495
    • [Groovy] add Groovy client tests to Github workflow by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11593
    • Implement Source DocumentationProvider, spring-mvc decommission by @cachescrubber in https://github.com/OpenAPITools/openapi-generator/pull/11531
    • [Scala] test Scala clients, servers in GitHub workflow by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11592
    • [GO] Fix for Pass by value/Pass by Reference changes which is breaking the go client by @the-akhil-nair in https://github.com/OpenAPITools/openapi-generator/pull/11466
    • Test Java Play framework in Github action by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11598
    • Test Java (native) client in JDK 11 by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11599
    • [Java][jaxrs-spec] add fromString() method to generated enums as required by JAX RS spec by @upachler in https://github.com/OpenAPITools/openapi-generator/pull/7494
    • [Java][RestTemplate] fix mustache template doesn't use reserved words for local variables by @amra in https://github.com/OpenAPITools/openapi-generator/pull/11583
    • [csharp-netcore] Nrt (nullableReferenceTypes) refactor by @devhl-labs in https://github.com/OpenAPITools/openapi-generator/pull/11452
    • [Python] fix api file name & api var name by @JoeCqupt in https://github.com/OpenAPITools/openapi-generator/pull/11051
    • [PHP] Allows passing filename to deserialize by @jtreminio in https://github.com/OpenAPITools/openapi-generator/pull/11582
    • Remove JDK7 support from Java Spring generators by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11561
    • [Java/Spring] Decomission threetenbp support. by @cachescrubber in https://github.com/OpenAPITools/openapi-generator/pull/11608
    • [JAVA] [Vertx/Web] Add default value to query parameters by @matthiasloeu in https://github.com/OpenAPITools/openapi-generator/pull/11600
    • [java][okhttp-gson] support multiple file upload by @lschwahn in https://github.com/OpenAPITools/openapi-generator/pull/11361
    • [java][Micronaut] avoid Double Brace Initialization (DBI) by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11609
    • [charp-netcore] Constructor Improvements by @devhl-labs in https://github.com/OpenAPITools/openapi-generator/pull/11502
    • [Java][RestTemplate] Use class level RestTemplate for uri encoding by @Laurens-W in https://github.com/OpenAPITools/openapi-generator/pull/11606
    • [General] Better code format by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11612
    • Spring hide controller impl by @cachescrubber in https://github.com/OpenAPITools/openapi-generator/pull/11611
    • Bump ajv from 6.6.2 to 6.12.6 in /website by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11584
    • Bump shelljs from 0.8.3 to 0.8.5 in /website by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11324
    • Support email validation in kotlin-spring in https://github.com/OpenAPITools/openapi-generator/pull/11617
    • [kotlin] add missing import, better code format for kotlin generators by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11619
    • [java] No @NotNull annotation for readOnly (required) attributes by @daniel-sc in https://github.com/OpenAPITools/openapi-generator/pull/10820
    • [python-experimental] fn + method signature improvements by @spacether in https://github.com/OpenAPITools/openapi-generator/pull/11529
    • Migrate JAX-RS server tests to Github action by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11632
    • [Java] move some client tests to Github actions by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11634
    • Add Github action file to test Java clients by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11633
    • Update kotlin vertx server dependencies by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11631
    • [Protobuf-Schema] Add enum prefix by @Yurzel in https://github.com/OpenAPITools/openapi-generator/pull/11548
    • typescript-fetch: Support deprecated parameters, operations by @ranhalprin in https://github.com/OpenAPITools/openapi-generator/pull/11523
    • :pencil2: Fixed typo error on java generator config-help command by @rcebrian in https://github.com/OpenAPITools/openapi-generator/pull/11644
    • Remove go-deprecated generator by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11645
    • [java] enhance unit tests for JavaJerseyServerCodegen by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11643
    • Remove dummy variable declaration for context.Context from generated go code by @moznion in https://github.com/OpenAPITools/openapi-generator/pull/11641
    • [Java][Native] Fix an issue leading to an altered String parameter when consuming formatted strings like XML by @Paul-Etienne in https://github.com/OpenAPITools/openapi-generator/pull/11640
    • [Python] python regex validation generation by @aaronatbissell in https://github.com/OpenAPITools/openapi-generator/pull/11525
    • Better code format in Go generators by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11656
    • Minor enhancements to code format in Go client by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11657
    • [Csharp][aspnet] Aspnet 6.0 Support by @Blackclaws in https://github.com/OpenAPITools/openapi-generator/pull/10619
    • Better code format in c#, aspnet generators by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11662
    • Add tests for Aspnet 6, minor bug fixes by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11663
    • maven-compiler-plugin 3.10.0 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11660
    • [java] openapi-generator-maven-plugin: add jaxrs-jersey2 test by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11658
    • [java] logback 1.2.10 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11659
    • [java] jersey 2.35 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11661
    • Add print-nanny.com to project list by @leigh-johnson in https://github.com/OpenAPITools/openapi-generator/pull/11667
    • jackson 2.13.1 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11669
    • [java] jaxrs swagger-core 1.6.5 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11668
    • archunit 0.23.0 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11670
    • update ArchUnit rules by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11671
    • kotlin 1.6.10 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11673
    • Update parser to 2.0.29 by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11388
    • Fixed wrong clearing of CodegenModel#hasEnum field by @kthoms in https://github.com/OpenAPITools/openapi-generator/pull/11653
    • rollback curl_list_free keyword by @minerba in https://github.com/OpenAPITools/openapi-generator/pull/11677
    • [Java][native] Properly encode exploded query params in url by @sorin-florea in https://github.com/OpenAPITools/openapi-generator/pull/11682
    • Add Model Docs to scala-akka generator as defined in its README by @nMoncho in https://github.com/OpenAPITools/openapi-generator/pull/11684
    • [java][native] fix build warning in javadoc by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11688
    • [Java][Spring] fix unhandledException not working in combination with… by @daberni in https://github.com/OpenAPITools/openapi-generator/pull/9879
    • validate pom.xml files by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11672
    • [swift5][client] remove apiResponseQueue in the clients that don't have any impact by @4brunu in https://github.com/OpenAPITools/openapi-generator/pull/11698
    • [Play Framework] Fix sonarqube warnings / code smells from the generated code. by @JFCote in https://github.com/OpenAPITools/openapi-generator/pull/11702
    • [Python] remove default content-type in the request by @kevchentw in https://github.com/OpenAPITools/openapi-generator/pull/10782
    • Fixed RFC3999DateFormat clone NPE by @chriswhite199 in https://github.com/OpenAPITools/openapi-generator/pull/11705
    • [Java][jersey2] Add test for RFC3999DateFormat clone method by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11706
    • [java native] Support arrays in QueryParameters deepObject style by @Reinhard-PTV in https://github.com/OpenAPITools/openapi-generator/pull/11699
    • [cpp-restsdk] Change build folder structure to match include folder structure in installed client by @srgbtl in https://github.com/OpenAPITools/openapi-generator/pull/11487
    • [csharp][netcore] Update Polly to newer version 7.2.3 by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11714
    • Fix Perl client header params by @7474 in https://github.com/OpenAPITools/openapi-generator/pull/11713
    • [kotlin-spring] fix #9902 use coroutine Flow for arrays in delegate when reactive=true by @giveadamakick in https://github.com/OpenAPITools/openapi-generator/pull/11695
    • 9904 Fix double quoting default values in Kotlin Spring by @bamapookie in https://github.com/OpenAPITools/openapi-generator/pull/11627
    • Bump actions/setup-dotnet from 1 to 2 by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11722
    • fix: avoid generic NPE when refering to missing schema by @tomasbjerre in https://github.com/OpenAPITools/openapi-generator/pull/11718
    • Support validation for arrays for JavaJaxRS and a test to validate th… by @Reinhard-PTV in https://github.com/OpenAPITools/openapi-generator/pull/11709
    • Bump url-parse from 1.5.3 to 1.5.10 in /website by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11723
    • Expose proxy settings for Ruby Faraday by @sirwolfgang in https://github.com/OpenAPITools/openapi-generator/pull/11692
    • [JavaMicronaut] fix maven-wrapper.properties filename typo by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11727
    • [typescript-angular] only support Angular v9+ by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11726
    • [java][camel] Fix typo with camelUseDefaultValidationtErrorProcessor by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11728
    • [C++] Simplify forward declaration detection by @dschmidt in https://github.com/OpenAPITools/openapi-generator/pull/11490
    • Bug Fix: Cast from QByteArray to std::runtime_error by @itay-grudev in https://github.com/OpenAPITools/openapi-generator/pull/11594
    • [java][okhttp-gson] Fix typos in the comments by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11729
    • [java] junit 4.13.2 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11733
    • [JavaSpring] Multipart causing HttpMediaTypeNotSupportedException when parameter is different than File or String by @redamessoudi in https://github.com/OpenAPITools/openapi-generator/pull/11449
    • Fix oneOf discriminator lookup in java okhttp-gson client by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11735
    • Enhance scalatra server codegen to include openapi info and package dir by @ravinallappan in https://github.com/OpenAPITools/openapi-generator/pull/11385
    • [Java] Add useOneOfDiscriminatorLookup option by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11736
    • Update maven-javadoc-plugin to newer version by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11737
    • archunit 0.23.1 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11739
    • openrewrite 7.19.0 by @sullis in https://github.com/OpenAPITools/openapi-generator/pull/11740
    • [Java] Java class assert by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11738
    • [csharp-netcore] Delete eol frameworks by @devhl-labs in https://github.com/OpenAPITools/openapi-generator/pull/11532
    • Fix typo in Java Feign client by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11751
    • Fix typo in C++ QT client by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11752
    • Fix slack join links in documentation by @erkkinen in https://github.com/OpenAPITools/openapi-generator/pull/11753
    • [Java] Fix reactor-netty dependency by @micopiira in https://github.com/OpenAPITools/openapi-generator/pull/11747
    • [jaxrs-cxf-cdi] mark deprecated api methods by @selliera in https://github.com/OpenAPITools/openapi-generator/pull/11755
    • [Ada] New options to choose the Ada support library in client and server by @stcarrez in https://github.com/OpenAPITools/openapi-generator/pull/11749
    • [scala-sttp] fix enumeration operator constant name collision by @bgong-mdsol in https://github.com/OpenAPITools/openapi-generator/pull/10596
    • [typescript-fetch] Remove undefined headers by @LeComptoirDesPharmacies in https://github.com/OpenAPITools/openapi-generator/pull/11757
    • [ruby] Allow boolean for discriminator value in oneOf handling by @ykitamura-mdsol in https://github.com/OpenAPITools/openapi-generator/pull/11750
    • [kotlin-spring] Add beanQualifiers switch to populate RestController / Controller annotations with FQCN by @vlsergey in https://github.com/OpenAPITools/openapi-generator/pull/11745
    • [Rust] Support for withAWSV4Signature option by @jerome-jutteau in https://github.com/OpenAPITools/openapi-generator/pull/11690
    • [#4650] Fix StackOverflowError for recursive composite schemas by @kthoms in https://github.com/OpenAPITools/openapi-generator/pull/11620
    • [typescript-fetch] / #8881: add ESM to npm builds by @sdoeringNew in https://github.com/OpenAPITools/openapi-generator/pull/11720
    • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11764
    • Bump follow-redirects from 1.14.7 to 1.14.9 in /website by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11762
    • Add @davidgamero to typescript technical committee by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11769
    • [typescript-angular] update package.json (v11) to address security alerts by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11765
    • [DefaultCodegen] GetReferenceHeader for both calls of headerToCodegenParameter by @Laurens-W in https://github.com/OpenAPITools/openapi-generator/pull/11756
    • Bump actions/download-artifact from 2.1.0 to 3 by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11777
    • [Java] remove samples & replace them with file asserts by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11773
    • Bump actions/upload-artifact from 2.3.1 to 3 by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11787
    • [Java][WebClient] allow sync requests by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11780
    • [JavaSpring] insert description value in @operation annotation by @pichlau in https://github.com/OpenAPITools/openapi-generator/pull/11781
    • Confluence Wiki - Escape special characters by @chatelao in https://github.com/OpenAPITools/openapi-generator/pull/11786
    • Fix jaxrs-spec to run with JDK 17 by @jsyrjala in https://github.com/OpenAPITools/openapi-generator/pull/11798
    • [Go][Ruby][PowerShell] Fix example generation when missing models by @impl in https://github.com/OpenAPITools/openapi-generator/pull/11805
    • [Java] support x-implements by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11784
    • [csharp-netcore] Fixed csharp netcore conditional serialization by @emajo in https://github.com/OpenAPITools/openapi-generator/pull/11710
    • Fix list keyword by @minerba in https://github.com/OpenAPITools/openapi-generator/pull/11806
    • Fix ClientCertificates in csharp configuration for client generation. by @paritoshgote-msft in https://github.com/OpenAPITools/openapi-generator/pull/11711
    • [C#] Add tests for constructors, better code format by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11814
    • C-libcurl cmake support specify path by @katepangLiu in https://github.com/OpenAPITools/openapi-generator/pull/11790
    • V4 Azure functions + some tweaks by @Abrhm7786 in https://github.com/OpenAPITools/openapi-generator/pull/11345
    • Document all used vendor extensions in specific generator by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11797
    • [java][okhttp-gson] Fix warnings due to incorrect docstring by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11815
    • Cleanup Jackson type info mess fixes (#9441) by @rpost in https://github.com/OpenAPITools/openapi-generator/pull/11691
    • Fix typo in supportAndroidApiLevel25AndBelow help by @skwasniak in https://github.com/OpenAPITools/openapi-generator/pull/11821
    • [kotlin][client] create comment to warn about android api version by @4brunu in https://github.com/OpenAPITools/openapi-generator/pull/11830
    • [Ruby] Add x-group-parameters support to Ruby client by @harmony7 in https://github.com/OpenAPITools/openapi-generator/pull/11825
    • [Ruby] Added Support for Building Models from Hashes with Strings as Keys by @ckoegel in https://github.com/OpenAPITools/openapi-generator/pull/11243
    • [Python] Add Support for Content-Disposition Header without filename by @ckoegel in https://github.com/OpenAPITools/openapi-generator/pull/11055
    • Optional outputAsLibrary, onlyInterfaces parameters by @sdstolworthy in https://github.com/OpenAPITools/openapi-generator/pull/11563
    • [Go] Fix template for oneOfs with primitive types by @impl in https://github.com/OpenAPITools/openapi-generator/pull/11826
    • [Python] Fix to remove wrong intendation in generated README.md by @wirthual in https://github.com/OpenAPITools/openapi-generator/pull/11834
    • [Python] Added Ability to Initialize Models by Passing in Dictionaries by @ckoegel in https://github.com/OpenAPITools/openapi-generator/pull/11125
    • Add auto-generated doc to scala-akka client by @nMoncho in https://github.com/OpenAPITools/openapi-generator/pull/11840
    • [Java] implicit headers regex by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11819
    • [csharp-netcore] Upgrade to System.Text.Json by @devhl-labs in https://github.com/OpenAPITools/openapi-generator/pull/11741
    • [Go] Fix nullable models embedded in allOf by @impl in https://github.com/OpenAPITools/openapi-generator/pull/11804
    • [csharp-netcore] Fix incorrect FileParameter deserialization by @NoTuxNoBux in https://github.com/OpenAPITools/openapi-generator/pull/11850
    • [Go] add more tests to cover more cases by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11849
    • Added field and class level annotations to the pojo.mustache by @jayfray12 in https://github.com/OpenAPITools/openapi-generator/pull/11775
    • [Python] Added Support for Validating and Converting Model Attributes by @ckoegel in https://github.com/OpenAPITools/openapi-generator/pull/11134
    • [Go] fix oneOf naming by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11863
    • Update java (okhttp-gson) client dependencies to newer versions by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11877
    • Update java (jersey2) client dependencies to newer versions by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11878
    • [typescript-angular] Prevent syntax error when using isDateTime=true by @HexagonSun in https://github.com/OpenAPITools/openapi-generator/pull/11860
    • [PHP] Fix deprecations in PHP 8.1 by @satackey in https://github.com/OpenAPITools/openapi-generator/pull/11743
    • [php-slim4] Tiny config comments by @ybelenko in https://github.com/OpenAPITools/openapi-generator/pull/11875
    • [php-slim4] Add minimal GitHub Action config by @ybelenko in https://github.com/OpenAPITools/openapi-generator/pull/11874
    • [Micronaut] Add support for OffsetDateTime for Micronaut generators by @andriy-dmytruk in https://github.com/OpenAPITools/openapi-generator/pull/11871
    • [scala-client]fix missing type in StringToArrayModelMapping by @bgong-mdsol in https://github.com/OpenAPITools/openapi-generator/pull/11856
    • [charp-netcore] Fixed property and parameter sorting by @devhl-labs in https://github.com/OpenAPITools/openapi-generator/pull/11807
    • [Rust][Server] Upgrade to tokio v1 by @sransara in https://github.com/OpenAPITools/openapi-generator/pull/11873
    • [Java][okhttp-gson] update junit to 5.8.2 from 4.13.2 by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11882
    • [typescript(experimental)] fix for Deno by @chibat in https://github.com/OpenAPITools/openapi-generator/pull/11887
    • MustacheTemplateUpdate csharp by @maciejcymanski132 in https://github.com/OpenAPITools/openapi-generator/pull/11870
    • [Feature][Java/Spring] Support Discriminator Based OneOf Interface by @cachescrubber in https://github.com/OpenAPITools/openapi-generator/pull/11650
    • [Java] update list of vendor extensions by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11891
    • [java][native] add connection timeout by @bgong-mdsol in https://github.com/OpenAPITools/openapi-generator/pull/11890
    • [java][okhttp-gson] Fix warning, update build.gradle, build.sbt by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11896
    • [java][jersey2] update junit from 4.x to 5.x (major upgrade) by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11898
    • [Java] rename x-contentType to x-content-type by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11895
    • [kotlin][spring] Rename extension to conform to kebab-case by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11894
    • [Java][JaxRS-Spec] fix builder generation by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11892
    • [swift5][client] fix non public visibility modifier for NullEncodable by @4brunu in https://github.com/OpenAPITools/openapi-generator/pull/11903
    • fix: [csharp-netcore]: oneOf fixes for Primitive types by @jafin in https://github.com/OpenAPITools/openapi-generator/pull/11427
    • Fix test failure due to different error message based on JDK version by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11906
    • Fix undefined object in Python model copy template by @tuanchien in https://github.com/OpenAPITools/openapi-generator/pull/11792
    • [csharp][netcore] better tests for oneOf with primitive types by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11907
    • [Ada] Fix typo in final Info message by @mgrojo in https://github.com/OpenAPITools/openapi-generator/pull/11914
    • Update maven plug-in dependencies to newer versions by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11915
    • [java][msf4j] use JDK8 in msf4j code by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11918
    • [Python] - Migrate enable per request authentification in new python codegen by @LeComptoirDesPharmacies in https://github.com/OpenAPITools/openapi-generator/pull/11279
    • Remove myself from Python community by @Jyhess in https://github.com/OpenAPITools/openapi-generator/pull/11919
    • [Android] only support JDK8+ by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11917
    • Fix the exception in python flask generator's option handling by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11916
    • [C#/.NET] remove duplicate CLI option by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11925
    • Remove ackintosh from core team and technical committee by @ackintosh in https://github.com/OpenAPITools/openapi-generator/pull/11928
    • [BUG] KOTLIN URI gerneration for URIs with default value misses the p… by @StefanMMS in https://github.com/OpenAPITools/openapi-generator/pull/11493
    • List/Map emptiness checking and stream variation by @rafgoncas1 in https://github.com/OpenAPITools/openapi-generator/pull/11920
    • Potencial NullPointerException fixes by @ismbargar in https://github.com/OpenAPITools/openapi-generator/pull/11923
    • [java][resttemplate] using uriBuilderFactory to encode all template values by @samuelo in https://github.com/OpenAPITools/openapi-generator/pull/11922
    • [Java][Spring] Fix Array response by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11909
    • [kotlin-server][jaxrs-spec] Remove obsolete imports from API template by @pmwmedia in https://github.com/OpenAPITools/openapi-generator/pull/11899
    • Only allow v3 input specs into python-experimental by @spacether in https://github.com/OpenAPITools/openapi-generator/pull/11931
    • [php] use http_build_query for deepObject support by @nadar in https://github.com/OpenAPITools/openapi-generator/pull/11225
    • [php-slim4] Update .htaccess template by @ybelenko in https://github.com/OpenAPITools/openapi-generator/pull/11939
    • Bump actions/cache from 2.1.7 to 3 by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11934
    • [Python] abbreviate dictionary membership testing idiom by @Smattr in https://github.com/OpenAPITools/openapi-generator/pull/11905
    • [php-slim4] Add lazy CORS implementation by @ybelenko in https://github.com/OpenAPITools/openapi-generator/pull/11941
    • [Ruby] Added Support for Binary Media Data Return by @ckoegel in https://github.com/OpenAPITools/openapi-generator/pull/11254
    • Fix markdown table format by @chanjarster in https://github.com/OpenAPITools/openapi-generator/pull/11955
    • Add documentation for scoop installation by @MartinDelille in https://github.com/OpenAPITools/openapi-generator/pull/11948
    • Replace maps with models to reduce casting by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11913
    • [Typescript-node] fix handling of --model-name-prefix|suffix options by @ty-v1 in https://github.com/OpenAPITools/openapi-generator/pull/11956
    • Revert "[Typescript-node] fix handling of --model-name-prefix|suffix options" by @macjohnny in https://github.com/OpenAPITools/openapi-generator/pull/11963
    • [Typescript-node] fix handling of --model-name-prefix|suffix options, second attempt by @ty-v1 in https://github.com/OpenAPITools/openapi-generator/pull/11966
    • Spring Boot Dependency Upgrade by @cachescrubber in https://github.com/OpenAPITools/openapi-generator/pull/11960
    • [Java][Spring] default value for list parameter by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/11961
    • Fixed commands written in docs. by @mkusaka in https://github.com/OpenAPITools/openapi-generator/pull/11978
    • [C][Client] Free list or map memory when json parsing fails by @ityuhui in https://github.com/OpenAPITools/openapi-generator/pull/11866
    • [GoClient] Fixed StringIndexOutOfBoundsException when multiple properties has the same required $ref oneOf objects by @kandaaaaa in https://github.com/OpenAPITools/openapi-generator/pull/11973
    • [Java][okhttp-gson] better support for additional properties by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11964
    • Update parser to 2.0.31 by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11981
    • Bump minimist from 1.2.0 to 1.2.6 in /website by @dependabot in https://github.com/OpenAPITools/openapi-generator/pull/11971
    • [php] Fix JSON object deserialization by @ybelenko in https://github.com/OpenAPITools/openapi-generator/pull/8481
    • [typescript-fetch] Add stringEnums option by @mkusaka in https://github.com/OpenAPITools/openapi-generator/pull/11976
    • [Micronaut] [Server] Add support for security roles with extension by @andriy-dmytruk in https://github.com/OpenAPITools/openapi-generator/pull/11995
    • Use https://search.maven.org/ for Maven Central links by @mikkomaunu in https://github.com/OpenAPITools/openapi-generator/pull/11988
    • [CircleCI] update image by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11929
    • [php] Fix form serialization typo from #11225 by @ybelenko in https://github.com/OpenAPITools/openapi-generator/pull/11990
    • Test PHP client in Travis CI by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11996
    • [php] Switch expected and actual params in tests by @ybelenko in https://github.com/OpenAPITools/openapi-generator/pull/11992
    • [Java][Spring] use tag description from specification by @borsch in https://github.com/OpenAPITools/openapi-generator/pull/12000
    • [scala][sttp]convert header parameter to string by @bgong-mdsol in https://github.com/OpenAPITools/openapi-generator/pull/11991
    • [csharp-netcore] Inject json options by @devhl-labs in https://github.com/OpenAPITools/openapi-generator/pull/11862
    • Add Mastercard to the company list by @jaaufauvre in https://github.com/OpenAPITools/openapi-generator/pull/12003
    • [PYTHON] Setting default value for Required variables by @the-akhil-nair in https://github.com/OpenAPITools/openapi-generator/pull/10809
    • [Python] Update APIException Output by @ckoegel in https://github.com/OpenAPITools/openapi-generator/pull/11989
    • Fixes issue where object in query parameter generates a NPE by @spacether in https://github.com/OpenAPITools/openapi-generator/pull/12010
    • [doc] Fix urls to sbt-openapi-generator in doc and script by @jadeszek in https://github.com/OpenAPITools/openapi-generator/pull/12015
    • Add Mastercard logo by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/12018
    • Update README.md by @tpberntsen in https://github.com/OpenAPITools/openapi-generator/pull/12022
    • Update Spring dependencies to address CVE-2022-22965 by @rick-a-lane-ii in https://github.com/OpenAPITools/openapi-generator/pull/12024
    • [Java][Native] Remove Javadoc warnings by @mikkomaunu in https://github.com/OpenAPITools/openapi-generator/pull/12017
    • Conditionally import the java validation API in the resource interface definition by @mfdewit in https://github.com/OpenAPITools/openapi-generator/pull/11999
    • Upgrade to Spring Boot 2.6.6/2.5.12 and Spring Cloud 2021.0.1. by @cachescrubber in https://github.com/OpenAPITools/openapi-generator/pull/12027
    • [typescript] Skip missing fields during deserialization by @bodograumann in https://github.com/OpenAPITools/openapi-generator/pull/12016
    • fix #11958 [BUG] python generates wrong model name and model file name by @chanjarster in https://github.com/OpenAPITools/openapi-generator/pull/11959
    • Conditionally install phpenv based on cache by @rick-a-lane-ii in https://github.com/OpenAPITools/openapi-generator/pull/12030
    • [Java Play Framework Generator] Fix NPE when passing null in a formData that is not required. by @JFCote in https://github.com/OpenAPITools/openapi-generator/pull/12028
    • [Micronaut] remove duplicate JsonTypeName by @pbthorste in https://github.com/OpenAPITools/openapi-generator/pull/12029
    • Correct scoop install command by @edgett in https://github.com/OpenAPITools/openapi-generator/pull/12035
    • [JS] Remove ES5 support by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/12033
    • Added space between @NotNull-annotation and Type by @mikkomaunu in https://github.com/OpenAPITools/openapi-generator/pull/12034
    • Support binary return format only in Ruby faraday client by @wing328 in https://github.com/OpenAPITools/openapi-generator/pull/11974
    • [csharp-netcore] Composed primitives support in generichost by @devhl-labs in https://github.com/OpenAPITools/openapi-generator/pull/11924
    • [cpp-qt-client] Fix c++ warning by @MartinDelille in https://github.com/OpenAPITools/openapi-generator/pull/12009

    New Contributors

    • @ferferga made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/10308
    • @Starkie made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/10738
    • @kasperpeulen made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11481
    • @ruijlpires made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11513
    • @lbilger made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11510
    • @zarlo made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11474
    • @borissmidt made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11260
    • @ugrave made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11475
    • @jtreminio made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11486
    • @sdelamo made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11569
    • @seanbrown-com made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11550
    • @the-akhil-nair made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11466
    • @upachler made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/7494
    • @amra made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11583
    • @matthiasloeu made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11600
    • @lschwahn made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11361
    • @Laurens-W made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11606
    • @ranhalprin made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11523
    • @rcebrian made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11644
    • @moznion made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11641
    • @aaronatbissell made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11525
    • @leigh-johnson made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11667
    • @nMoncho made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11684
    • @chriswhite199 made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11705
    • @giveadamakick made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11695
    • @bamapookie made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11627
    • @tomasbjerre made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11718
    • @sirwolfgang made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11692
    • @dschmidt made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11490
    • @itay-grudev made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11594
    • @redamessoudi made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11449
    • @ravinallappan made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11385
    • @erkkinen made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11753
    • @micopiira made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11747
    • @vlsergey made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11745
    • @pichlau made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11781
    • @jsyrjala made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11798
    • @impl made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11805
    • @emajo made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11710
    • @paritoshgote-msft made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11711
    • @katepangLiu made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11790
    • @rpost made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11691
    • @skwasniak made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11821
    • @harmony7 made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11825
    • @ckoegel made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11243
    • @sdstolworthy made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11563
    • @wirthual made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11834
    • @NoTuxNoBux made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11850
    • @jayfray12 made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11775
    • @satackey made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11743
    • @sransara made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11873
    • @maciejcymanski132 made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11870
    • @tuanchien made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11792
    • @mgrojo made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11914
    • @StefanMMS made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11493
    • @rafgoncas1 made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11920
    • @ismbargar made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11923
    • @samuelo made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11922
    • @pmwmedia made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11899
    • @nadar made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11225
    • @Smattr made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11905
    • @chanjarster made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11955
    • @mkusaka made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11978
    • @mikkomaunu made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11988
    • @jaaufauvre made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/12003
    • @jadeszek made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/12015
    • @tpberntsen made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/12022
    • @rick-a-lane-ii made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/12024
    • @mfdewit made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/11999
    • @pbthorste made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/12029
    • @edgett made their first contribution in https://github.com/OpenAPITools/openapi-generator/pull/12035

    Full Changelog: https://github.com/OpenAPITools/openapi-generator/compare/v5.4.0...v6.0.0-beta

    Source code(tar.gz)
    Source code(zip)
  • v5.4.0(Jan 31, 2022)

    v5.4.0 is the last stable release before next major release v6.0.0 scheduled in 2022 Q1/Q2. It comes many enhancements/bug fixes and 5 new generators/libraries:

    Thanks for all the contributions from the OpenAPI Generator community.

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    General

    • Migrate to official Apache Maven Wrapper #11381
    • Adds generator default template engine #11366
    • Recursively search for types during import type collection in deeply nested schemas #11221

    Avro

    • Avro schema generation fix for properties with type ref to an enum #11201

    C

    • keyword conflict with zebos list_creat(), list_free() #11190

    C++

    • [CPP-QT-QHTTPENGINE Server] various bug fixes #11177

    C#

    • Improve example value handling in C# generators #11355
    • [csharp-netcore] Fix: Add only first Authorization header #11325
    • [BUG][csharp-netcore] Fix Multi Files for the same FormField #11259
    • [csharp-netcore] Adding generic host library #10627

    Go

    • Handling golang client generation for oneOf with no discriminator and useOneOfDiscriminatorLookup is true #11178

    Java

    • [JAVA] new Feature interface: Documentation Provider and Annotation Library #11258
    • Avoid using import mapping in model generation #11217
    • [Java Spring OAS3] Fix numerous OAS3 related Bugs #11181
    • Apache Camel Server Generator #11162 (New Generator)
    • Change Helidon MP release in generated project from 1.x to 2.x #11076
    • Add Micronaut server generator Enhancement: New generator #10270

    JavaScript

    • [JS][flow] update node-fetch to newer version #11378

    Kotlin

    • [KOTLIN][CLIENT] fix unused library additional properties on kotlin generator #11328
    • [kotlin] Added fix for wrongly encoded backticks for reserved words when generating kotlin client #11310
    • [kotlin-server][jax-rs] Added support for JAX-RS library into Kotlin Server generator #10830

    PHP

    • [PHP] Allow guzzlehttp/psr7 ^1.7 or ^2.0 #11240
    • [php][bug] Fix DateTime microseconds bug in ObjectSerializer #11213

    Python

    • [Python] fix model to dict #11234
    • feat(python-asyncio): add support for proxy config using system env vars #11171
    • Adds python-experimental which uses dynamic base classes #8325

    Rust

    • Rust Client: Add support for collectionFormat="multi" #11169

    Scala

    • [scala-gatling] use the official Gradle plugin #11208

    Swift

    • Make moduleObject.mustache confirms to JSONEncodable #11202
    • [swift5] Add property x-null-encodable extension for full control over encoding value/nil or nothing #11141

    TypeScript

    • [TypeScript Fetch] Default TypeScript fetch configuration to 3.6+ true #11331
    • [typescript-angular] Support blob response types #11085
    Source code(tar.gz)
    Source code(zip)
  • v5.3.1(Dec 21, 2021)

    v5.3.1 is the last stable release in 2021. It comes many enhancements/bug fixes and 2 new generators/libraries:

    Thanks for all the contributions from the OpenAPI Generator community. We would like to take this opportunity to wish everyone Happy Holdiays!

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    General

    • Fixes paramName and dataType for request body anyType parameters #11075
    • Compare HTTP auth security schema names case-insensitive #10989
    • Better handling of NPE in parser when referencing invalid schema #10882

    Bash

    • [Bash] Support post form data #10795

    C

    • [C][Client] Support a custom data type (IntOrString) #11074
    • [C][Client] Use cpack to build deb package #10935

    C#

    • [C#] new Azure functions generator #11020
    • [C#] Update C# dependencies to newer version #10761
    • [csharp-netcore] Support Net 6.0 #10634

    C++

    • [cpp-pistache-server]: Fix build with pistache #10829
    • [cpprestsdk] CMake build system improvements #10660
    • [Qt][C++] Oauth2 Authorization Code Flow and Implicit Flow Support #10183

    Crystal

    • [crystal][client] Update crystal client gitignore.mustache with shards related files #10698

    Dart

    • [dart][dio][built_value] Fix missing serializer factory builders for additionalProperties #11011
    • [dart-dio-next] Removes dioLibrary option #10931

    Go

    • [GO] dont canonize headers #10779

    Groovy

    • Fix build-info-extractor-gradle in groovy build.gradle #10760

    Kotlin

    • [kotlin][client] update request exceptions #11065
    • [Kotlin] Fully qualified "Any" for enums in encode and decode function #10985
    • [Kotlin][Multiplatform] Support custom Ktor HTTP client configuration #10968
    • [kotlin][spring] Add validation to headers #10703

    Java

    • [java][okhttp-gson-nextgen] Better null handling in oneOf, anyOf model #11056
    • Add operation level servers support for java okhttp-gson client #10925
    • [Java][okhttp-gson] Support text/plain body #10885
    • Fix library generation compatibility with Gradle 7.2 #10716
    • [java][microprofile] update dependency to newer version #10714
    • Allow Spring generated code to use new OAS 3 annotations #9775

    K6

    • [K6 Generator] various enhancements (request body example data extraction, support for generating scenario tests and load tests out of the box, and much more) #11106

    Php

    • [php-slim4] Bump required PHP version to 7.4 #11039
    • [php-slim4] Switch to Packaged Body Parsing Middleware #9562

    PowerShell

    • [powershell] add file upload support #10735

    Protobuf

    • [Protobuf-Schema] Add numbered field number list switch #10893
    • [Protobuf-Schema] Add enum as model support #10868

    Python

    • [Python] fix model.mustache import #10988
    • [Python] Add option to select/detect content-type #10978

    Rust

    • [rust][client] fix breaking regression introduced by #10432
    • [rust] Update to modern hyper and futures crates #9919

    Scala

    • [scala-akka-http-server] Fix array optional parameter invalid default value #10676

    Swift

    • [swift5][client] allow request cancellation and authentication flow to work together #11019
    • [swift5] Refactor encodeToJSON #10961

    TypeScript

    • Fixed http errors deserialization #10940
    • Support Angular 13 #10877
    • Typescript saga immutablejs enhancements and small fixes #10444
    Source code(tar.gz)
    Source code(zip)
  • v5.3.0(Oct 24, 2021)

    v5.3.0 comes with many bug fixes and enhancements with breaking changes (with fallbacks). Almost 240 PRs (covered more than 20 programming languages) contributed by the OpenAPI Generator community. Thank you.

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    General

    • Add snake case lambda #10658
    • Add try-with-resources to unclosed streams #10641
    • Improve version management, update dependencies, remove unused dependencies #10544
    • Fix Windows build failure in some environments #10529
    • Updated model generation, addProps handling moved into type object and anyType handling #10505

    Bash

    • Changing from scriptName to x-codegen-script-name to fix dockerfile #10594

    C

    • Libcurl CMake adaptations #10249

    C#

    • Fix compilation issues in the CSharpOperationTest class #10574
    • [csharp-netcore]For conditionalSerialization do not initialize the default value. #10551

    C++

    • [cpp-rest-sdk-client] Serialize boolean parameters as true/false instead of 1/0 #10554
    • [cpp][qt] Start cleanup of cpp qt readme #10549
    • Improve templates for C++ Restbed #10543
    • [cpprestsdk] fix string conversion, add integer enum support #10531

    Crystal

    • [crystal] Fix some issues in crystal client templates #10629

    Dart

    • Dart: mark jaguar for deprecation #10533
    • [dart] json_serializable: remove experimental generator #10532
    • [dart][dio] Respect import-mappings parameter #10528
    • [dart-dio-next] Adds an option for using the dio_http package Client: Dart Enhancement: Feature #10497

    Elm

    • [elm] fix for invalid code being generated for enums #10328
    • [bugfix][Elm] Fix template when response schema is Map #10310

    Go

    • [go]: fix anyOf compilation error #10431
    • [go-server] Fix: param names clash with variables, added suffix #10243

    Haskell

    • [haskell-http-client] add ability to choose additional characters in querystring which should not be encoded (e.g. "+" or ":") #10424

    HTML

    • Updated the HTML2 Doc Curl Examples to provide sample Request Body & Query Param examples #10323

    Java

    • [java][jersey2] update dependencies #10659
    • Improve Apache Httpclient support #10624
    • [Java][Feign] Add http status to feign result #10583
    • [Java][RestTemplate] Fix RestTemplate not handling ApiKey in cookie #10578
    • [java][jersey2] use implementation, add min version of maven, gradle in the README #10571
    • [java] Update Gradle to 7.2 #10538

    K6

    • [ K6 Generator ] Support for extracting examples defined at parameter level of Swagger/OpenAPI specification, plus minor fixes #9750

    Kotlin

    • Fix kotlin enum default value #10592
    • Kotlin multiplatform updated to fit future Kotlin 1.6.0 release #10468

    PHP

    • [PHP] Update GuzzleHttp version to 7 #10585
    • [php] fix 'mixed' invalid for settype() #10576
    • [php-slim4] Migrate PHPUnit config #10230

    PowerShell

    • Add decimal support to the powershell generator #10486

    Python

    • [Python] fixes setitem throwing an error for composed instance #10197
    • Python client - fixes boolean enum use case #9926

    R

    • Add decimal support to R client generator #10487

    Ruby

    • Ruby: Fix deprecation warning for Faraday #10559
    • [REQ] [RUBY] [FARADAY] Allow middleware to be configured #10495

    Rust

    • Fixes doubles type as &str&str for type:string; format:uuid parameter #10569

    Scala

    • fix: don't send just " " in body, send an empty string #10561

    Swift

    • [swift5][client] add support for async await #10442

    TypeScript

    • [typescript-axios] Update to Axios 0.23.0 #10626
    • fix(NestJS): use correct typing for default headers #10616
    • [typescript-axios] Fix invalid query params usage #10512

    WSDL

    • [wsdl] string comparison bug fix, minor format change #10446
    • [Wsdl] Handle schema property of type array with oneOf items and other minor updates/fixes #10434
    Source code(tar.gz)
    Source code(zip)
  • v5.2.1(Aug 16, 2021)

    v5.2.1 release comes with 2 new generators:

    Thanks for all the contributions from the OpenAPI Generator community.

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    C

    • [C][Client] Allocate memory for the element of array when the type is number #10124

    C#

    • [csharp-netcore] Fixed the utc time issue for httpSigning auth #10139
    • [csharp] Obsolete attribute on deprecated operations and properties #10084

    C++

    • [cpp-pistache-server] Fix missing semicolon in template and missing code to set default values of model schema #10136
    • [cpp-ue4] Added support for bool in URL parameters, now writes true/false #9951

    Dart

    • [dart][dio] Nullable parameters & defaults for header/query parameters #10147
    • [dart-dio-next] Don't use encodeCollectionQueryParameter on maps #10116
    • [dart-dio] Fix parameter generation problems #10061

    Elixir

    • [Elixir] Adding :package and :description to mix.exs template #9945

    Erlang

    • [erlang-server] Dialyzer spec #9983

    Go

    • [go-server] Feat: add required assertions to models #10068
    • [go] More idiomatic godoc comments #10044

    Haskell

    • Haskell-http-generator - Make endpoints which don't return anything yield NoContent #9916

    Java

    • [BUG][Java] Fix a race condition in RetryingOAuth.mustache #10087
    • Add support for Micronaut Client #10063
    • [Spring] Use fully qualified name for Pageable #10045
    • [jaxrs-resteasy] fix java8 datetime issue #10014

    Kotlin

    • Add AnyType support to Kotlin generators #10070
    • [Kotlin][Multiplatform] Add missing JVM dependency #10051

    PHP

    • Make php's array primitive #10093
    • [PHP] Deprecated annotation on operations and fields #10085
    • [PHP] New client generator php-dt #10041

    Python

    • [python-flask] Fix NoneType when deserialize optional date #10081

    Ruby

    • [Ruby] Add new Ruby versions to the Travis CI build matrix configuration #9971

    Rust

    • [rust-client] Fix typo related to the form parameters #10096

    TypeScript

    • Typescript-angular: Added missing semi colon to interface file #10121
    • [typescript-fetch] Add initOverrides #10050

    Swift

    • [swift5 client] fix filename for binary downloads #9989
    Source code(tar.gz)
    Source code(zip)
  • v5.2.0(Jul 9, 2021)

    v5.2.0, containing breaking changes with fallbacks, has been released with bug fixes, enhancements and 3 new generators:

    • cpp-tiny
    • python-fastapi
    • wsdl-schema

    Please give these a try let us know if you've any feedback.

    The release comes with 190+ PRs contributed by the OpenAPI Generator community. Once again, we would like to thank all contributors for their contributions.

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    General

    • Better null check to surpress SonarCloud warning #9888
    • operationId: Allow getting only the method name #9724
    • Avoid using Properties.clone() which is broken in Gradle plug-in #9653
    • Adds isShort + isUnboundedInteger to IJsonSchemaValidationProperties implementers #9519
    • Fix Gradle Plugin ValidateTask not working under Gradle 7.0 #9453

    Android

    • [Android] update httpclient version, fix compilation issue in the sample #9728

    Bash

    • [Bash] Fix matching of header parameters #9370

    C

    • [C]: Fix enum values #9537

    C#

    • Conditionally apply serialization on certain properties #9807
    • [aspnetcore] avoid empty string enum value in the option #9501
    • [csharp][httpclient] Introduce FileParameter as an abstraction #9426
    • [csharp][netcore] Handle Deserialization Asynchronously #9424

    C++

    • [C++][pistache] string enum code generation improvement #9786
    • [cpp-ue4] API calls not return the http request for further manipulation #9693
    • [cpp-restsdk] Update json double/float parse #9577
    • [cpp][tiny] rename generator, update samples #9560
    • [C++] Rename Qt5 to Qt #9490 Breaking change (with fallback)
    • New generator | Arduino cpp #9489

    Crystal

    • [crystal][client] Support authorization #9488
    • [crystal] Update crystal version 1.0.0 (from 0.35.1) #9477

    Dart

    • [dart][dart-dio] Add support for query collection parameter format #9635
    • [dart][dart-dio-next] Improve support for file uploads #9542
    • [dart] Improve content-type handling #9517

    Erlang

    • Fix regex in Erlang by removing the delimiter #9892
    • [erlang-server] minor bug fixes #9784

    Go

    • [go-server] Add go-chi generator to go-server via a router property #9748
    • [go-gin-server] add PATCH method support #9662
    • [goserver] Fix single inheritance code generation for goserver #8356

    Haskell

    • [BUG][Haskell] Fix returning NoContent #9830
    • [haskell][server]: Set "AnyType" to Aeson.Value #9733

    Java

    • [Java] [Native] Unify exception messages for async, add the status code #9825
    • [Java][Feign] Skip oauth-related files when the spec has no oauth defined #9760
    • Hide buildOauthRequestInterceptor under isOAuth section #9736
    • [Java][WebClient] add ResponseEntity return for webclient #9327

    Kotlin

    • Add support for generating a Set for a list with uniqueItems set to true #9849
    • [Kotlin Multiplatform] Update and fixes for Kotlin 1.5.10 and Kotlinx.serialization 1.2.1 #9755
    • [kotlin][client] fix Android crash on API level 25 and bellow #9578
    • [Kotlin][retrofit2] replace okhttpclient with callfactory #9451
    • [Kotlin] Allow optional header parameters with Kotlin and retrofit2 #9306

    JavaScript

    • [JS][Flow] Better code format, update samples #943
    • [Javascript-Flowtyped] Handle joining uniqueItems in api template #9417

    PHP

    • [php-mezzio-ph] PHP 8 support #9445
    • [php-slim4] Decouple Slim4 codegen from Slim3 #9208

    PowerShell

    • [PowerShell] Improve generated PowerShell examples #9836

    Python

    • New python-fastapi generator #9611
    • Fix python generation when custom files and templates are specified #9572
    • [python][client] allow passing floats for request timeout #9532
    • [python] readonly constructors #9409
    • [python] Fixes additional_properties_type for models #8802 Breaking change (with fallback)

    R

    • Add support for Boolean in R client generator #9469

    Rust

    • [rust-client]: fix reqwest not support client::options #9745

    Scala

    • [Scala] better code format #9463
    • [scala][client] invoker package enhancement #9381

    Swift

    • [Swift5] support Vapor 4 client library #9625
    • [Swift5] namespace changes #9624
    • [Swift5] Add useClasses cli option #9608
    • Add hashableModels to additional properties #9495
    • [swift5][client] make AnyCodable optional #9479
    • [swift5] Map file and binary to Data #9419
    • [swift5][client] add option to generate or not the model additional properties #9375
    • [swift5] Add support for oneOfs #8714

    TypeScript

    • [typescript-fetch] Support for async accessToken #9659
    • Typescript: add paramPropertyNaming #9546
    • [typescript-axios] properly mark 'deprecated' routes in #9505
    • Add OAuth2 to typescript template #9466
    • [typescript] Fix uncompilable output when using allOf #9275
    • [Typescript Fetch] New optional mode with redux saga & immutablejs (saga & records) #8578

    WSDL

    • New generator: WSDL #9545
    Source code(tar.gz)
    Source code(zip)
  • v5.1.1(May 7, 2021)

    v5.1.1 is a patch release with enhancements, bug fixes covering 15+ programming languages. As always, we appreciate the contributions from the awesome OpenAPI Generator community. In this release, we've added a new go-echo-server generator.

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    General

    • [Enhancement] added support for custom type & format mapping #9285
    • [Docker] support multi-arch build #9246
    • Gradle plugin - @Input and @Internal should not be apply on the same property #9059
    • [core] Allow using lists as globalProperty in config files #8339
    • Add executionId to filehash in OpenAPI Generator Maven Plugin #7848

    Bash

    • [bash] Update Bash Client Dockerfile.mustache #9310
    • [Bash] escape tabs properly #8970

    C#

    • [csharp-netcore][httpclient] Issues managing error statuses #9389
    • [csharp][netcore-httpclient] Refactor of constructors: removed obsolete attribute #9373
    • [C#][netcore] Add multiple frameworks support #9196
    • [C#] fix integer enum without format #9136
    • [csharp][netcore-httpclient] Reuse HttpClient, Allow use of external HttpClient, Fix Socket Exhaustion, Alternative With Constructor Injection #9085
    • [csharp][aspnetcore] Fix FileUpload Parameter Generation for aspnetcore #9000

    C++

    • [cpp-ue4] Improved retry system to use Unreal's FHttpRetrySystem #9382
    • UE4 - Support FGuid with in/out Helpers #9291
    • C++ Qt5 support date format enum #9283
    • Include QVariant helpers header #9161
    • [C++] remove pthread from CMakeLists.txt #9130

    Dart

    • [dart][dart-dio] Add built_value date support w/o timemachine #9180
    • [dart] Improve types & imports #9167
    • [Dart2] Add initial support to use an isolate to offload JSON serialization/deserialization #9100
    • [Dart] Use interrupted exception instead of just exception #9092

    Go

    • Add Go echo server codegen #9224
    • [Go][server] parse bool in query parameter #9171
    • [Go] Parse int arrays and respect the 'required' property #9120
    • [go] Add constructor and IsValid method to enum types #8224

    Java

    • [java][okhttp] Default Java client to Java 8 instead of Java 7 #9344
    • [Java][Spring] Different in-parameter types generated for api and delegate for binary (application/octet-stream) #9331
    • [Java][JavaJaxRS] Respect readOnly/writeOnly attribute markers #9276
    • [Java] [Native] Add response body to exception message #9169
    • [BUG] Java (jersey2) ApiClient debug cannot be enabled #8756
    • [JAVA][jaxrs-spec] Added custom methods to add/remove elements from java collections #6468

    Javascript

    • Use prepare script instead of prepack in Javascript package.json #7807

    Kotlin

    • [Kotlin] Make ApiClient in jvm-retrofit2 be able to add additional retrofit Converter Factory #9316
    • Kotlin jvm-retrofit2: Add missing ResponseBody import for binary responses #9239
    • [Kotlin] add BigDecimal, BigInteger support #8880

    Nim

    • [nim] camelize names #9255

    PHP

    • [php-symfony] remove nested Valid constrain #8994
    • [PHP] Fix parentSchema conditional causing parent call when parent isn't present #8705

    PowerShell

    • [PS] minor improvements to the auto-generated appveyor.yml #9300
    • [PowerShell] improve return type documentation #9295

    Python

    • [Python] Fix exclusive min and max #9340
    • Fixes serialization of array items in model_to_dict [python] #9153

    Ruby

    • Dockerfile for the Ruby-Sinatra generator #9299
    • [Ruby] postpone require models with parent #9103

    Rust

    • [Rust] Add enum suffix support #9107
    • [rust-server] Update templating docs to correct the name of x-response-id #7839

    Scala

    • [Scala][Akka] Use Files.createTempFile to address security concerns #9348
    • [scala-akka-http-server] allows generation of managed sources only #9012

    Swift

    • Swift5 models improvements #9205
    • Add Hashable for Struct #9166
    • [swift5] Add useSPMFileStructure #9074

    TypeScript

    • [typescript-axios] add missing baseName for array params #9273
    • typescript-angular: Fix Cannot read property 'apiKey' of undefined #9260
    • Resolve response type name conflict in angular typescript lib #9216
    • Resolve responseType name conflict in Angular Typescript lib #9202
    • [typescript-angular] Provide return value for all code paths #9176
    • [typescript-axios] handle uniqueItems in query and header parameters #8965
    Source code(tar.gz)
    Source code(zip)
  • v5.1.0(Mar 20, 2021)

    v5.1.0, the first minor release after the v5.0.0 major release, contains breaking changes with fallbacks, security fixes, new generators and more. For a full list of changes, please refer to https://github.com/OpenAPITools/openapi-generator/pulls?q=is%3Amerged+is%3Apr+milestone%3A5.1.0+

    Below are some highlights of the changes:

    General

    • Adds getAdditionalPropertiesIsAnyType to java schema classes #8908
    • Correct use of loggers with placeholders and remove some redundant operations #8842
    • [maven plugin] fix security issues #8795
    • [online] use Files.createTempFile to address security concerns #8788
    • Add an option to skip operation examples #8731
    • [Gradle Plugin] Allow to set additional property of any type. Useful for Boolean values #8507

    Documentation

    • Use Files.createTempFile in asciidoc generator tests if possible #8794

    Android

    • [android][volley] various improvements #8968

    C

    • [C][Client] Generate API and module documents automatically #8981

    C#

    • [C#][netcore] Call static method without creating instance #8889
    • [csharp-netcore] Make Blazor Webassembly compatible #8876
    • [C#][netcore] update dependencies to newer versions #8872
    • [csharp-netcore] Fix handling of Dictionary query parameters and fix deepObject style parameter handling #8848
    • C# Netcore WebRequest and HttpClient functionality #8821
    • Add ASP.NET Core 5.0 support #8717
    • [aspnetcore] Improve model inheritance support by including JsonSubTypes to properly handle serialization #8384

    C++

    • [C++][Qt]Replace usage of QVariant with a more intuitive optional wrapper #8960
    • Fix not processing enums in cpp-pistache-server #8886
    • Qt client handle deprecated #8766
    • [cpp-qt5-client ] Improve CMake #8724
    • [Qt5][C++] Adding Parameter Styling Support for Qt5 #8587

    Dart

    • [dart][dart-dio] Next-gen dart-dio generator #8869
    • [dart][dart-dio] Lower upper bound for built_value #8947
    • [dart] Fix api client deserialization for json_serializable #8882
    • [dart][dart-dio] Nullable support/improvements #8727 Breaking change (with fallback)
    • [dart][dart-dio] Raise min Dart to 2.7.0 & update built_value constraint #8684

    Erlang

    • [Erlang][Client] better code, update sample #8853

    Go

    • [Go] bug fix (breaking), minor code format enhancement #8715
    • [GO] Add additional AWS v4 signature config options to go client generator #8706
    • [REQ] [GO] Added enumClassPrefix option to go-gin-server #8681
    • Fix generated go client cannot upload file #8393

    Flash/ActionScript

    • Remove flash templates #8741

    Java

    • [JaxRS] Fix ambiguous dependency #8923
    • Changed virtualan version from 1.0.0 to 2.1.7 #8910
    • [Java] use Files.createTempFile instead #8787
    • Update jackson dependencies to address security issues #8778
    • [Java][Client] JSON-B serialization support #8729
    • [webclient] bug fix to double URL encoding #8660
    • [java native][dotnetcore] Implement QueryParameter deepObject style #8563

    JavaScript

    • Make JS client case sensitive wrt. reserved words #8905
    • [JS] the replace statement in parseDate is too greedy #8633

    JMeter

    • [JMeter] fix header parameter naming #8861

    Kotlin

    • [Kotlin][Client] create request config method #8617
    • Replace deprecated import for kotlin Parcelize annotation #8590

    OCaml

    • [OCaml] Fix enum returnType in of_json.mustache for Api Impl #8631

    Perl

    • [Perl] minor improvements #8967

    PHP

    • [PHP] Use a valid php type for maps #8718

    PowerShell

    • [REQ][PowerShell] Add additional reserved words list for parameter name in PowerShell #8935

    Python

    • [python][template] move _path_to_item of simple init to avoid name error #8737

    Ruby

    • [ruby] Fix syntax error #8675

    Rust

    • [Rust Client] several small fixes to code generation errors #8845
    • Rust: Add support for lists (and sets) of enum values #8693
    • [rust client] upgrade reqwest crate to 0.11 #8603

    Scala

    • [Scala][Finch] use Files.createTempFile to avoid potential security issues #8791

    Swift

    • Fix for StackOverflow in Swift5 CodeGeneration #8672

    TypeScript

    • typescript-nestjs: removed unused basePath from api.service template #8811
    • [typescript-axios] Support array query arguments #8772
    • [typescript-fetch] handle uniqueItems correctly in model and api #8695
    • typescript-node: Fixed models.mustache with for...in on an empty array #8575
    Source code(tar.gz)
    Source code(zip)
  • v5.0.1(Feb 6, 2021)

    v5.0.1, the first patch release after v5.0.0 major release, comes with 2 new generators: crystal client generator and ktorm-schema generator.

    For a full list of changes (150+ PRs), please refer to the Pull requests tab

    Below are some highlights of the changes:

    General

    • Adds hasValidation to all java core Schema classes #8474
    • Adds isNull to codegenX java core classes that represent schemas #8462
    • To fix model selection using ":" as the separator #8388
    • Update maven wrapper #8305
    • Tweak regexp in underscore method #8230
    • Make frequently used IO resources autoclosable #8181
    • Remove servers urls with trailing slash #7940

    Crystal

    • Add a new crystal client generator (beta) #8304

    C

    • [C][Client] Fix the memory leak when a JSON of model fails to parse #8390
    • [C][Client] Disable escaping the parameter name in URL path string #8243
    • [C][Client] Add C++ reserved keywords to C-libcurl client generator #8205

    C#

    • [csharp-netcore] add .Net 5.0 support #8467
    • Style fix: use correct package name in tests #8451
    • [csharp-netcore] Fixed ApiClient code generation not respecting modelPackage settings #8272
    • Fix csharp-netcore enum var name underscore and space handling #8213

    C++

    • [Qt5][C++] Fixed QByteArray::toUtf8 with FILE as request body #8550
    • [Qt][C++] Updated cpp-qt5-client doc #8251
    • [Qt5][C++] Removed deprecated functions to support Qt6 #8234

    Dart

    • [dart][dart-dio] Improve API & API-Client field initialization #8589
    • [dart][dart-dio] Add missing isRedirect parameter to response #8588
    • Add getters for private default Headers and authentications #8509
    • [feature][dart] Add support for uniqueItems/sets #8375
    • [dart][dart-dio] Generate the correct serializers #8357
    • [dart][dart-dio] Add missing imports for container parameters #8355
    • [dart][dart-dio] Fix collection and date default values not compiling #8306
    • [dart][dart-dio] Enable strong-mode and strict types #8231
    • [dart-dio] Serializes request bodies using a specific serializer #6384

    Documentation

    • [cwiki] Added Enum documentation and fix newline problem for description #8338

    Elixir

    • Add .t in spec generation of Elixir structs #8159
    • [Elixir] Adds workaround for httpc for post/put/patch requests #5682

    Elm

    • Fix bugs with duplicated data type #8223

    Go

    • [Go] Fix response body #8439

    Java

    • Upgraded dependency versions in Java (okhttp) client generator #8604
    • Bumped Vert.x template to Vert.x 4 GA #8528
    • Remove supportJava6 option #8514
    • [Java][Client][Vertx] Use Vertx reference instead of static class in ApiImpl template #8501
    • [Play Framework] Update the bean validation to use version 2.0 #8354
    • [Java] fix generation for JavaTimeFormatter #8348
    • Javadoc + operations interface + provider for state(ful/less) handlers #8346
    • Spring codegen - fix equals and hashCode methods for byte array and binary #8345
    • [JAVA][Feign] Replace Apache oltu with scribejava #8318
    • Implement useAbstractionForFiles for webclient library #7567

    JavaScript/NodeJS

    • --http-user-agent arg support in javascript generator #8531

    JMeter

    • [JMeter] Support json data in csv #8461
    • [Jmeter] Support securityDefinitions #8459

    Kotlin

    • [kotlin] fix Date types usages #8594
    • [Kotlin-Spring] Fix properties default value #8373
    • [Kotlin-Spring] Fix required model property deserialization #8337
    • [Kotlin-Spring] Fix optional requestBody with delegate #8299
    • Add Ktorm schema generator #7759

    Nim

    • [Nim] test the petstore client in drone.io #8466
    • [Nim] bugfix for the case when path contains multiple parameters #8402

    PowerShell

    • [PowerShell] minor fix to API doc #8496
    • [powershell] Fix fields null check in powershell model template #8323
    • [powershell] Fix error message templates for some field names #8321
    • Implement optional powershell verb parsing #8252

    Python

    • Removes nulltype from python, updates samples #8555
    • [PYTHON] use customized default Configuration() objects if available #8500
    • [feature][python-flask] Add CORS support to python-flask server #8472
    • [python] Fixes file upload + download, adds tests #8437
    • [PYTHON] use _Endoint to allow apis to have Endpoint #8405
    • Fixes object serialization when there is an inline array property which contains a refed enum #8387
    • Stackoverflow in toExampleValue() for python client #8326

    R

    • Fix auto-generated R doc #8584

    Ruby

    • [ruby] Support aliasing of API keys #8124

    Rust

    • Fix handling of 1xx and 3xx in Rust Reqwest #8574
    • [Core, Rust Server] anyOf / oneOf support for Rust Server #6690

    Scala

    • Renamed basic authentication function in sttp client #8396

    Swift

    • [swift5] URLSession: Fix memory leak of SessionDelegate #8558
    • [swift5] Fix request closure not being called #8537
    • [swift5] Fix target SDKs for Combine option #8476
    • [Swift 5] fix XcodeGen deploy target to match cocoapods #8279
    • [Swift 5] fix Multipart FormData encoding, add support for Form encoding #8275

    TypeScript

    • Add typescript-nestjs client generator #8522
    • [typescript-axios] bump axios version to 0.21.1 to fix vulnerability #8445
    • typescript-fetch: fix isCollectionFormatMulti for arrays of files #8376
    • typescript-angular: add providedIn for Angular 9+ #8324
    • [typescript(experimental)] fix for Deno v1.6 #8265
    Source code(tar.gz)
    Source code(zip)
  • v5.0.0(Dec 21, 2020)

    We're happy to announce the release of v5.0.0 - another major release with lots of enhancements, new generators and bug fixes. More than 1000 PRs contributed by the awesome OpenAPI Generator community have been included in this release.

    For a list of breaking changes, please refer to the following:

    Here are some new generators added to the v5.0.0 release:

    • C++ UE4 client generator: cpp-ue4
    • A rewritten TypeScript client generator supporting fetch & jquery: typescript
    • A Plantuml generator for creating a schema diagram: plantuml

    Here are some generators that have been refactored:

    • dart
    • dart-dio
    • elm
    • go
    • java (jersey2)
    • php-ze-ph => php-mezzio-ph
    • powershell
    • python

    To view the enhancements, bug fixes for a particular generator, please go to the list of changes and apply "Label" to filter out changes accordingly.

    Source code(tar.gz)
    Source code(zip)
  • v5.0.0-beta3(Nov 20, 2020)

    5.0.0-beta3 is the last beta release before the v5.0.0 major stable release scheduled next month (Dec 2020). Thanks again for all the awesome contributions from the openapi-generator community.

    Full list of changes (including breaking changes with or without fallback)

    Below are the highlights of the changes.

    General

    • Add "decimal" support #7808 Breaking change (with fallback)
    • Adds additionalProperties to core schema classes #7761
    • Changes lingering isMapContainer to isMap #7747 Breaking change (without fallback)
    • Unifies naming for isArray in Schema class properties #7691 Breaking change (without fallback)
    • Adds isDateTime to CodegenModel #7657 Breaking change (without fallback)
    • Adds isDate to CodegenModel #7652 Breaking change (without fallback)
    • Unifies naming for isMap in Schema class properties #7640 Breaking change (without fallback)
    • Fix scopes generation for multiple oauth flows #7615
    • Expose batch subcommand #7608
    • Replace deprecated methods #7600 Breaking change (with fallback)
    • [bug][maven] Fix custom windows classpaths in maven plugin #7587
    • [core] Enable multiple oauth2 flows #7570 Breaking change (with fallback)
    • [maven] environmentVariables -> globalProperties #7559
    • [batch] Option to clean files before generation #7465
    • [core][feature] User custom added templates #7366 Breaking change (with fallback)
    • [core] Add model cache to speed up code generation #7250
    • Removes secondaryParam and hasMore #7882 Breaking change (without fallback)

    Ada

    • [BUG][Ada] Incorrect client Ada code generated #7719

    Apex

    • Updated keywords to be aligned with the official ones #7522
    • [Apex] better handling of different content-type in the response #7515

    C

    • [C][Client]Fix coredump in multi-thread environment #7835
    • [C][Client]Support data callback function #7467

    C++

    • [cpp-restbed-server] make the restbed SERVER generator more extensible #7679
    • [cpp-ue4] add support for Content-Type containing charset #7379

    C#

    • [C#] support .NET framework 4.7 #7833
    • [C#][netcore] Add anyOf support #7801
    • [C#][netcore] Rename HTTPSigningConfiguration.cs to HttpSigningConfiguration.cs #7630
    • [C#][netcore] Add discriminator support to oneOf lookup #7626
    • [C#][netcore] Add oneOf support to C# .NET Core client #7607
    • [C#][netcore] Default OverrideSpecifiedNames to false #7583 Breaking change (with fallback)
    • [Aspnetcore] use the term openapi #7540 Breaking change (without fallback)
    • [C#][NetCore] add multi-server support #7433
    • [C#][netcore] better support for additional properties in the payload #7396
    • [C#][Nancyfx] fix incorrect import #7907

    Dart

    • [Dart] map AnyType to Object #7822
    • Upgrade Dart2 template to advertised best-practices, plenty of additions too #7585
    • [Dart][Client] Fix default value of enum variables #7496
    • Adds cookie auth support to ApiKeyAuth in dart2 templates #7346

    Documentation

    • [Core, HTML2] Rendered docs are incomplete #7510
    • [cwiki] Path parameter generation fix for split rows #6894

    Elixir

    • [Elixir] Fixes optional body mapping #7606
    • [Elixir] Fixes Typespec for multiple return definitions #7604

    Go

    • [go] Improve examples generation #7576
    • [GO][SERVER] Implement response code #7397 Breaking change (without fallback)
    • [Go] minor format change, deprecate "withGoCodegenComment" option #7375 Breaking change (without fallback)

    Haskell

    • [haskell-http-client] have applyOptionalParemeter (-&-) append values in headers or querystrings instead of replacing values #7805

    Java

    • [JAXRS-CXF] Improve handling of additional properties #7866
    • [Play Framework] Update Play Framework Generator to latest version #7860 Breaking change (without fallback)
    • [java][jersey2] add proxy support #7752 Breaking change (without fallback)
    • [java][groovy] Fix mangled src paths in some outputs on Windows #7487
    • [Java][vertx] Use typeMapping instead of postProcessParameter #7457
    • [Play Framework] Fix the configuration package #7391
    • Update Vert.x Web template to Vert.x 4 #7364
    • Fix multi-part binary form parameters for jaxrs-jersey templates #7363
    • [Java][Native] Support oneOf/anyOf schemas #7263
    • [Java][Spring] Add Spring pagination with vendor extension x-spring-paginated #5022
    • [bug][Java] Honor instantiationMap for default values for array, map, set #4982

    JS/NodeJS

    • [javascript-flowtyped] Fix Flow error #7786
    • [JS] Allow auth.accessToken to be either function or string #7484

    Kotlin

    • [Kotlin] Fix Spring Kotlin generation of array/map models #7829
    • [kotlin] Fix optional header params in openhttp client #7341
    • [kotlin] Fix imports of generated class #7314

    ObjC

    • Update of Objective-C model-body.mustache to support discriminator.mappedModels #7471

    OCaml

    • Replace '.' characters by '_' in enum type names since OCaml doesn't allow to use '.' in any kind of identifiers #7767
    • [Ocaml] Fix missing space on models #7742

    PHP

    • [php] Implement JsonSerializable in php Model class #7768
    • Small tweaks for php generator, PHPStan level 3, Psalm level 7 #7616
    • [PHP] Small tweaks for php generator, PHPStan level 1 #7528
    • Tweaks for php generator, based on issues reported by PHP static analysis tools (PHPStan) #7376

    PowerShell

    • [PS] Add proxy support #7739
    • [PowerShell] Fixed the empty string issue when server returns null #7633
    • [PowerShell] Fixed the maximum minimum range check condition #7482
    • Fix the ECDSA signature issue for PowerShellSDK #7386

    Protobuf

    • [Protobuf] Fix support for AllOf in protobuf-schema #7813

    Python

    • [python] Renames python generators #7965 Breaking change (with fallback)
    • [python] add socket_options to configuration for the rest client #7795
    • [python] Add option to return None instead of raising exception when accessing unset attribute #7784
    • [python-experimental] implement in operator for model classes #7637
    • Add option to set recursion limit #7491
    • [Python] correct return types if multiple responses are defined #7427 Breaking change (with fallback)
    • Adds free form model generation in python-experimental #7373
    • Subclass Python exceptions #7321

    R

    • feat(r): retry configuration for status codes #5925

    Ruby

    • [Ruby][faraday] fix response streaming #7734
    • [Ruby] Replace DateTime with Time #7656 Breaking change (without fallback)
    • Update default ruby, faraday versions #7538
    • [ruby] Support for per-operation servers #7415

    Rust

    • Add impls for Error trait for Rust reqwest #7462
    • Fix Rust codegen for AnyType #7461
    • [rust-server] Fix server example on non-Linux #7399
    • [Rust][reqwest] Fixed parameters of Array type #7049

    Scala

    • Better decimal support in Scala generators #7876
    • Update junit to newer version (4.13.1) #7690
    • Fix scala-sttp enum generation #7432

    Swift

    • Add AnyType support to Swift generators #7644
    • [Swift5][URLSession] Fix handling of customHeaders between retries #7527
    • [Swift5] fix issues causing stack overflow #7301

    TypeScript

    • typescript-angular: Angular 11 support #7937 Breaking change (with fallback)
    • [typescript-rxjs] Added support for servers #7771
    • [TYPESCRIPT-ANGULAR] Add configurationPrefix option #7731
    • [typescript-inversify] bug fix for array type #7636
    • [typescript-axios]: Only call JSON.stringify on JSON request bodies #7580
    • [typescript] Fix generation of enum models #7529
    • [typescript-axios] replace optional-chaining #7476
    • [typescript] Fix incorrect enum literal case #7378 (Breaking change (with fallback)
    Source code(tar.gz)
    Source code(zip)
  • v5.0.0-beta2(Sep 4, 2020)

    5.0.0-beta2 is a pre-release before the v5.0.0 major stable release scheduled in Q3/Q4 this year. Thanks again for all the awesome contributions from the openapi-generator community.

    Full list of changes (including breaking changes with or without fallback)

    Below are the highlights of the changes.

    General

    • Adds generator unaliasSchema method, uses it to refactor python-experimental #7274
    • [core][bug] FILES is now path relative with no prefixes #7271
    • [bug][core] Copy all attributes (not properties) on composed schemas when flattening models #7106
    • fix: update base image to maven supported #7001
    • Add 'x-generate-alias-as-model' extension to allow enabling generating alias as model per-schema #6937
    • [core] Add x-is-free-form vendor extension #6849
    • [core] Add type and format properties to model of inline response #6153
    • [online] Fix for version conflicts with springfox/boot #7102

    Arvo

    • [Avro] Default value for no required fields to null #7006

    C

    • [C][Client][Clang Static Analyzer] Remove the useless free operation for buffContent #7309
    • [C][Client][Clang Static Analyzer] Fix uninitialized argument value #7305
    • Fix a missing return in the C client sslConfig_create function #7217
    • C-Libcurl client: fix enum model generation #5604

    C#

    • [csharp-netcore] Adding ConfigureAwait(false) using async methods call #7234
    • [ASP.Net Core] Better wordings for 'classModifier' option #7233
    • [C#][csharp-netcore] Improvement to standard code format #7206
    • Update csharp-netcore dependencies to the latest stable version #7194
    • [csharp-netcore] added cancellation tokens to async calls #7077
    • [csharp-netcore] renamed async methods to end with async #7062 Breaking change (without fallback)

    C++

    • Fix string comparison in C++ UE4 client generator #7029
    • [cpp-restsdk] Enabling forward declarations also for cpp-restsdk generator #6996

    Dart

    • [Dart] Treat float as double #6924
    • [dart] fix toJson does not handle complex type #6730
    • [Dart] Fix enum generation #6729

    Documentation

    • [MARKDOWN] fix property and parameter names #6105

    F#

    • Fix string comparison in fsharp generator tests #7052

    Flash/ActionScript

    • Deprecate Flash (ActionScript) client generator #7231

    Go

    • [Go] replace go generator with go-experimental generator #7337
    • Fix http bear auth documentation for go clients #7312 Breaking change (with fallback)
    • [go-server] Modified go-server templates to allow services to receive http request's context #7214 Breaking change (without fallback)
    • [REQ] Added enumClassPrefix option to Go server generation #7008
    • [Go] fix unmarshal for models with parents #6946
    • [Go]: Interface definitions for api functions #5914

    Haskell

    • [haskell-http-client] avoid depending on ParseTime,FormatTime #6861

    Java

    • [Spring Boot] update dependencies, mark java8 option as deprecated #7306
    • [Java] remove deprecated jackson classes #7304 Breaking change (without fallback)
    • [Java][jersey2]Support enum discriminator value in child objects #7267
    • [Play Framework] Update minor version + scala version + swagger-ui version #7200
    • [Java][Client] Use java8 OffsetDateTime for clients #7190
    • [jaxrs-spec] Fix JaxRS Spec generator additional model types #7180
    • [Java][Spring] Additional annotations with String params #7117
    • [Java][RestTemplate] useAbstractionForFiles - Use Resource interface instead of AbstractResource #7051
    • [Java] Rollback Feign version to 10.11 #7012
    • [Java] Add JsonTypeName to clients using Jackson #6995
    • [Java][RestTemplate] Use abstraction for files #6912
    • [Java] Deprecate feignVersion option #6824 Breaking change (without fallback)
    • [java][jersey2-client] Disable coercion of scalars #6811
    • Make ApiClient in retrofit2 be able to use own OkHttpClient #6699
    • [java] Intro openApiNullable property to enable/disable OpenAPI Jackson Nullable library #6154
    • Support for KumuluzEE microprofile runtime #5944

    Kotlin

    • [Kotlin] Make ApiClient in jvm-retrofit2 be able to use own OkHttpClient #6999
    • [Kotlin] Rxjava3 support #6998

    NodeJS/JavaScript

    • [NodeJS] Auto populate config using schema servers.url #6980
    • Update JS dependencies #6867
    • [JS] adding handling for epoch dates #6504

    PHP

    • [php-slim4] Move config to a separate file #6971
    • [php-lumen] Set required PHP version to ^7.2.5 #6949
    • [php-ze-ph] Set required PHP version to ^7.2 #6763
    • [php-laravel] Upgrade php-laravel to 7.x #6346 Breaking change (without fallback)

    PlantUML

    • Surpress warnings in the plantuml generator #7071

    PowerShell

    • [PS] Allow CI to publish the module #7091
    • [PS] add nullable body support #6930
    • [PowerShell] support default value in models #6920

    Protobuf

    • [Protobuf] Generate enum fields #7073 Breaking change (without fallback)
    • [Protobuf] Make it possible to override field numbers using x-protobuf-index #7002

    Python

    • [fix][python-flask] add missing space for flask basic auth header #7031
    • [python-experimental] Removes python2 support #6991
    • Mark python2 support in Flask as deprecated #6653 Breaking change (without fallback)

    R

    • [R] skip test for enum model #6936
    • [R] Enum R6Class Support #5728

    Ruby

    • [Ruby] ruby client build from hash nullable #6945

    Rust

    • [Rust][reqwest] prefix local variables with "local_var" #7299
    • [Rust][Client] Unify sync/async client structure #6753 Breaking change (without fallback)

    Scala

    • Fix header issues for akka-scala client #7259
    • [scala][play] Update apiTrait.scala.mustache #6891
    • Sttp - wrap query params #6884
    • Improve sttpOpenApiClient generator #6684 Breaking change (without fallback)

    Swift

    • [swift5] Add extension for hashable #7300
    • [Swift5] Fix Datetime default value #7003
    • Fix - Provides a default value for optional init parameters #6827

    TypeScript

    • [Typescript-redux-query] Fix issue on api template when we have non empty header #7179
    • [Typescript] Import path is invalid in windows #7175
    • [typescript-axios] add promise to bearer and oauth tokens #7132
    • typescript-angular: Angular 10 support #7037
    • [TS] Fix string comparison #7027
    • [typescript-axios] switched to new URL API #6960 Breaking change (without fallback)
    • [typescript-angular] Unify authorization lookup #6953
    • [typescript-rxjs] add support for raw response and progressSubscriber #5465 Breaking change (without fallback)
    Source code(tar.gz)
    Source code(zip)
  • v5.0.0-beta(Jun 29, 2020)

    5.0.0-beta is a pre-release before the v5.0.0 major stable release scheduled in Q3/Q4 this year. Thanks again for all the awesome contributions from the openapi-generator community.

    Below are the highlights of the changes.

    General

    • Fix for operation defination containing ref schema #6676
    • [docker] Tag latest-release for stable latest tagging #6573
    • Copy vendor extensions from request body #6766
    • Fix default response #6625
    • Remove localVariablePrefix #6588 (Decommission)
    • Remove deprecations 5.0 #6060 (Breaking change (with fallback))
    • [core] Refactor templating management #6357 (Breaking change (without fallback))
    • [core][general] Add metadata file tracking to aid in "Golden Tests" regeneration #6325
    • Update swagger parser to 2.0.20 #6372
    • [core] Move overwrite ownership to SupportingFile #5036 (Breaking change (with fallback))

    C

    • [C][Client] Convert integer/boolean to string for query parameter in request url #6652

    C#

    • [csharp] Rename v5.0 to netstandard1.3 #6460 (Breaking change (with fallback))
    • [c-sharp] generator added CancellationToken to async api calls #6243
    • [aspnetcore] Remove web.config #6214 (Breaking change (without fallback))
    • [csharp-netcore] Remove support for old .net core project type #3937 (Breaking change (without fallback))

    C++

    • [C++] [restsdk]Update CMakeLists.txt for seamless building on Windows and Linux #6658
    • [C++][Pistache] Catch HttpError from user-provided handler #6520
    • [cpp][Qt5] Add the ability to pass QNetworkAccessManager as a parameter #6053
    • [C++]Enable forward declaration for C++ #6654
    • Add C++ UE4 client generator #6399

    Dart

    • Dart - generate constructor with named params #6751
    • [dart-dio][client] Allow passing progress callbacks through client methods #6261
    • Dart enum toJson method #6111
    • [dart-dio] Adds support for generating inline enums #5668 (Breaking change (without fallback))

    Documentation

    • Fix Basic Bearer auth examples for HTML2 Docs #6579
    • Add some AsciiDoc tweaks #6436
    • [cwiki] Show enum values for URI parameters #6174

    Elm

    • [elm] Add bearer, task, and sendWithCustomError #5146
    • Elm client generator refactoring #4891 (Breaking change (without fallback))

    Erlang

    • Use supplied packageName instead of hardcoded #6561

    Go

    • [go] Required fields are not pointers #6698
    • [go-experimental] Fix error message when unmarshaling wrong enum value #6663
    • go: use PathEscape instead of QueryEscape to escape path params #6618
    • [Go][Experimental] add oneOf discrimistrator lookup #6517
    • [Go][Experimental] Add discriminator support to anyOf #6511
    • [go-experimental] Fix marshalling of of go oneOf structures to work on non-pointer receivers #6314
    • [go-experimental] Ensure enum deserialization checks enum values #6315
    • [Go][Experimental] better oneOf and anyOf implementation #6166

    Java

    • [Java][Microprofile] JSON enum processing fix #6700
    • Decommission Retrofit play24, play25 #6665 (Decommission) Breaking change (without fallback)
    • [Java] Add add constructor to BYO OkHttpClient #6401
    • [Java][Retrofit2] deprecate RxJava 1.x #6641 (Decommission)
    • [JAVA] RxJava3 support #6622
    • [Java][Native]Add option to use the builder pattern for API parameters #5961
    • Jersey2 supports additional properties with composed schema #6523
    • [Java] Decommission Retrofit 1.x support #6447 (Decommission)(Breaking change (without fallback))
    • [Java][Feign] decommission 9.x support #6445 (Decommission)
    • [JAVA] Generate arrays with "uniqueItems" true as Sets rather than Lists #5466 (Breaking change (without fallback))
    • Set java8 to true by default #6278 (Breaking change (without fallback))
    • [Java][jersey2] replace jersey2 with jersey2-experimental #6251 (Breaking change (without fallback))
    • [Java] Enable discriminator recursive lookup #5895
    • Add full OAuth2 support to jersey2-experimental codegen #6183

    JavaScript/Nodejs

    • Pass body to service #6041
    • [JS] mark ES5 as deprecated #6408 (Decommission)

    K6

    • [fix] Fix delete http verb (the k6 equivalent is del) #6624

    Kotlin

    • Add use-site target field for JsonProperty annotation in kotlin data classes #6186
    • Support the use of tags in the delegated Spring Kotlin generator #5499 (Breaking change (without fallback))
    • #5476 [kotlin] [spring] fix swagger and spring annotation for defaultValue #6101
    • [kotlin][client] add support for coroutines with OkHttp #6362

    Lua

    • Minor improvements to the Lua client generator #6219

    PlantUML

    • Add new Plantuml generator for creating a schema diagram #6255

    ObjC

    • [Objective-C] Fix thread-safety in template #6725
    • Added basic bearer authentication to objc template #6640

    PHP

    • [php-slim4] Move Data Mocker to external repo #5930
    • [php-slim4] Set required PHP version to 7.2 #6530
    • [php] Set required PHP version to 7.2 #6603
    • [php-lumen] Show required PHP version in docs #6501
    • [php-laravel] Show required PHP version in docs #6502
    • [php-symfony] Set required PHP version ^7.1.3 #6181 (Decommission)
    • Mark Silex server generator as deprecated #6220 (decommission)
    • [php] Set required PHP 7.1 in code comments and readme #6188

    PowerShell

    • [PS] Add additional properties support #6528
    • [PowerShell] Add useOneOfDiscriminatorLookup option #6516
    • Add oneof/anyof support to PowerShell client generator #6361
    • Replace powershell generator with powershell-experimental generator #6213 (Breaking change (without fallback))
    • [powershell-experimental] http signature authentication implementation #6176

    Python

    • [Python] Additional properties with array types #6594
    • [python] Fix date-time parsing #6458
    • [Python][Client] Fix delimiter collision issue #6451
    • [python-experimental] Quicken package loading #6437
    • python-experimental updates ancestor + adds descendant discriminator tests #6417
    • [codegen][python-experimental] Composed schema with additionalProperties #6290
    • [Python-experimental] Fix type error if oneof/anyof child schema is null type #6387
    • [codegen][python-experimental] Add configuration knob to disable JSON schema validation #6227
    • [Python-experimental] JSON schema 'null' type should be modeled as 'none_type' #6121
    • [codegen][Python-experimental] Discriminator NPE fix, handle 'null' type #5809

    R

    • Replacing caTools dependency with base64enc #6349

    Ruby

    • Remove the json dependency #6580

    Rust

    • [Rust][Client] Multiple returns becomes optional #6673
    • [Core, Rust Server] Support JSON query parameters #6577
    • [Core, Rust Server] Support optional headers #6575 (Breaking change (without fallback))
    • [Rust Server] Pass context to client middleware #6574 (Breaking change (without fallback))
    • [Rust][Client][Reqwest] Better http error handling #6481
    • [Rust][reqwest] add async support #6464
    • Add "useSingleRequestParameter" option to Rust client generator #6230
    • [Rust Server] Support boolean headers, and fix panic handling headers #6056
    • [Rust Server] Support complex query parameters #5831
    • [Rust Server] Don't use structs in models #5557
    • [Rust Server] Hyper 0.12 Support #4519 (Breaking change (without fallback))

    Swift

    • [SWIFT5] Add the ability to turn uniqueItems array into Set in swift #6773
    • [Swift] fix GET request with array parameter #6549
    • Mark swift4 generator as deprecated #6311 (Decommission)

    TypeScript

    • Mark typescript-angularjs as deprecated #6723 (Decommission)
    • [typescript-angular] support for object query parameters as nested key/json string #5790
    • [TypeScript] Rewritten TypeScript client generator supporting fetch & jquery #6341
    • Fix typescript generator for parameter collectionFormat for pipes ssv #6553
    • [typescript-angular] drop support of angular below 6.0.0 #6360 (Breaking change (without fallback))(Decommission)
    • [typescript-axios] Implement useSingleRequestParameter option #6288
    Source code(tar.gz)
    Source code(zip)
  • v4.3.1(May 6, 2020)

    v4.3.1 is the last v4.x release before the upcoming v5.0.0 major release. As always, we appreciate the contributions from the community. In this release, we added a few new generators/libraries:

    • java (library: jersey2-experimental)
    • aspnetcore (aspnetCoreVersion: 3.1, 3.0)
    • powershell-experimental
    • scala-akka-http-server

    We also fixed a bug (regression) on allOf being incorrectly interpreted as the inheritance (without proper use of discriminator) instead of the model composition (correct interpretation according to the spec).

    For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

    General

    • [cli][build] Relax the git id plugin #6094
    • Propagate deprecated property through $ref's #6093
    • Better "Any Type" support #6091
    • [validation] Warn on duplicate tags #6061
    • Restore allOf behaviour (model composition) for definition with a single schema reference #5977
    • Add input flag for Gradle openApiGenerate task #5966
    • Expose isDeprecated variable to model template #5964
    • [gradle] Print value of outputDir correctly in gradle plugin #5936
    • Update bitwise config #5904
    • [maven] mark Mojo threadSafe=true + fix concurrency issue in CodegenConfigurator #5898
    • [codegen] Fix 'super.HashCode' for oneOf and allOf Implementations (retry) #5830
    • Add default case to handle response code #5825
    • [codegen] Use once(LOGGER) to reduce amount of identical warning messages #5808
    • [cli][docker] Better expose version/sha information of builds #5736
    • [cli] Add --global-property for -D replacement #5687
    • [CORE] Fixes composed schema discriminator map #4906
    • Use model as body param for generateAliasAsModel #4569

    C

    • [C][Client]Fix data lost when libcurl write-data callback function is called multiple times #5828
    • [C][Client] Support SSL client authentication for the c client #5719
    • Tests for models for C-libcurl generator #5699
    • [C] fix decode function #5642

    C#

    • Fix bearer authentication in c# netcore client (async call) #6136
    • [csharp-netcore] Fixed handling of nullable enum values #6112
    • Implement Asp.Net Core 3.0/3.1 generator #6025
    • [C#] Add bearer support to C# client #5975
    • [C#][netcore] return a null instead of application/json when no content types are set #5941
    • Add bearer auth support to csharp netcore client generator #5921
    • [C#] dependency upgrade #5870
    • [Csharp-client] Complex form parameters are not serialized as application/json #5849
    • [csharp] Library upgrade fix #5848
    • [C#] Fixed valuetype parameters and discriminator deserialization #5680

    C++

    • [C++] [Qt5] Export response code to worker #6021
    • [C++] [Qt5] Export valid and set status of properties #6020
    • [C++] [Qt5] [Client] fixed cpp-client-qt5 HttpRequestWorker contentCompression variables initialization #5834
    • [C++] [Qt5] Updates to allow the setting of the dateTime format string #5763
    • [C++] [Qt5] fixed cpp-client-qt5 HttpRequestWorker requests crashing on timeout #5651

    Dart

    • [dart-dio] various improvements #6047
    • [Dart] Fix enum data type #5793
    • [Dart] Remove content type from header when content type is not specified #5752
    • [Dart] Fix "basic" auth method and Add Bearer token support #5743
    • [dart-dio] Fixes --model-name-suffix having no effect #5669
    • [dart-dio][client] Handle x-www-form-urlencoded form data #5597
    • Add listFromJson method to fix #4887 #5355

    Documentation

    • [markdown] Show description when summary is missing #6159
    • [bug][html2] Fix visibility of body/response schemas #5643

    Erlang

    • [Erlang-Server] security definition context changes don't propagate to handler #5751

    Go

    • [go experimental] Make the array "items" attribute optional #6132
    • [Go][experimental] provide code samples in the API doc #6115
    • File return type fix #5644

    Groovy

    • Fix crash issue on windows #6011

    Java

    • Add HTTP signature authentication support to Java (jersey2-experimental) #6058
    • Add jersey2-experimental to Java client generator #6024
    • Fix crash issue on windows #6011
    • [Java][Client] Fix Gradle and SBT builds for REST Assured generator #5990
    • [Java][RestTempalte] Change access updateParamsForAuth to protected #5940
    • [Java] Increase java compiler stack size to handle large files #5901
    • [Java] Discriminator lookup should not be case insensitive by default #5894
    • Add date time format annotation on pojo for model query parameters #5437
    • [Java][Feign] Bug fix in @Param annotation #5250
    • [BUG][JAVA][spring-mvc] Generated Code for Map of Maps #5240
    • [enhancement] [jaxrs-spec] Add builders to models #4930
    • [Java][Native] Add asyncNative option #4721

    Kotlin

    • [BUG] [KOTLIN] Fix default value generation for Kotlin Strings #5776
    • [kotlin] Fix #5247 incorrect enum parameter type for arrays #5435
    • [kotlin][client] Use allVars instead of vars for Kotlin client #5396

    MySQL

    • [mysql] Add OAuth2 framework tables #5807

    PowerShell

    • [PS][Experimental] Add validations to model #5842
    • [PS][Experimental] use allVars to cover all properties #5835
    • [PS][Experimental] Fix array return #5822
    • [PS][Experimental] add withHttpInfo support, fix "null" return #5811
    • [PS][Experimental] Better common verb handling #5783
    • [PS][Experimental] fix passthru, use switch instead of bool #5768
    • [PS][Experimental] Add multiple server support #5741
    • [PS][Experimental] various improvements #5740

    Python

    • Adds memoization and deserialization through 2 or more discriminators #6124
    • [Python][aiohttp] create venv as rule #5913
    • [Python] Fix Python UTF-8 Encoding Issue #5679

    Swift

    • Fix URLSessionImplementations file upload #6043
    • Fix OpenAPI link in broken Swift4/5 README templates #6035
    • [swift5] fix warning in Swift 5.2 #5900

    TypeScript

    • [TypeScript-Angular] Add AuthService example to README.md #6087
    • [typescript-fetch] Make FormData optional #6077
    • [typescript-fetch] Support deepObject query params #6075
    • [typescript-fetch] Fix map API return type #5995
    • [typescript-axios] fixed pattern data integrity #5974
    • [typescript-axios][client] Allow apiKey type Promise #5953
    • Update axios dependency to the new minor version 0.19.0 #5867
    • [typescript-axios][client] Unnecessary imports occurs when using withSeparateModelsAndApi #5797
    • Ensure model.allParents always includes model.parent #5738

    Scala

    • [scala][akka-http] fix non-default packages for api, model and invoker #6129
    • [scala-akka-http] fixed date header and removed broken test due invalid v2 spec #6109
    • Fix Scala sttp generator packages #5890
    • [scala-akka-http-server] Fix a generation problem on operations with empty responses #5868
    • Minor improvements to scala akka server #5823
    • New Generator: Scala akka-http server #5758
    • Fix scala-akka java8 serializers #5742
    Source code(tar.gz)
    Source code(zip)
  • v4.3.0(Mar 27, 2020)

    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

    • [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
    Source code(tar.gz)
    Source code(zip)
  • v4.2.3(Jan 31, 2020)

    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
    Source code(tar.gz)
    Source code(zip)
  • v4.2.2(Dec 2, 2019)

    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
    Source code(tar.gz)
    Source code(zip)
  • v4.2.1(Nov 15, 2019)

    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
    Source code(tar.gz)
    Source code(zip)
  • v4.2.0(Oct 31, 2019)

    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
    Source code(tar.gz)
    Source code(zip)
  • v4.1.3(Oct 4, 2019)

    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
    Source code(tar.gz)
    Source code(zip)
  • v4.1.2(Sep 11, 2019)

    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
    Source code(tar.gz)
    Source code(zip)
  • v4.1.1(Aug 26, 2019)

    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
    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(Aug 9, 2019)

    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
    Source code(tar.gz)
    Source code(zip)
  • v4.0.3(Jul 9, 2019)

    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
    Source code(tar.gz)
    Source code(zip)
  • v4.0.2(Jun 20, 2019)

    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
    Source code(tar.gz)
    Source code(zip)
Owner
OpenAPI Tools
A collection of tools for OpenAPI specifications. (NOTE: This organization is not affiliated with OpenAPI Initiative (OAI))
OpenAPI Tools
An API or getting Optifine VersionsList/Version/Download-URL.

Optifine-API An API for getting Optifine VersionsList/Versions/Download-URL. Table of contents Get Versions List Get Specify Versions Download Optifin

2 Dec 04, 2022
“ Hey there 👋 I'm Daisy „ AI based Advanced Group Management Bot Suit For All Your Needs ❤️.. Source Code of @Daisyxbot

Project still under heavy development Everything will be changed in the release “ Hey there 👋 I'm Daisy „ AI based Advanced telegram Group Management

TeamDaisyX 43 Nov 12, 2022
Python function to construct an ODS spreadsheet on the fly - without having to store the entire file in memory or disk

stream-write-ods Python function to construct an ODS (OpenDocument Spreadsheet) on the fly - without having to store the entire file in memory or disk

Department for International Trade 1 Oct 09, 2022
A Python bot that uses the Reddit API to send users inspiring messages.

AnonBot By Edric Antoine A Python bot that uses the Reddit API to send users inspiring messages. When a message includes 'What would Anon do?', the bo

1 Jan 05, 2022
A python script that can send notifications to your phone via SMS text

Discord SMS Notification A python script that help you send text message to your phone one of your desire discord channel have a new message. The proj

2 Apr 25, 2022
A Python Discord bot project generator

Heater Heat up a Discord bot in a blink What is Heater? Heater is a Command Line Interface tool which allows you to generate a barebones Python Discor

DevGuyAhnaf 5 Jan 14, 2022
Subtitle Translater

Subtitle Translater

OshadhaVimukthi 2 Nov 29, 2021
The Python SDK for the Rackspace Cloud

pyrax Python SDK for OpenStack/Rackspace APIs DEPRECATED: Pyrax is no longer being developed or supported. See openstacksdk and the rackspacesdk plugi

PyContribs 238 Sep 21, 2022
A Discord bot to play bluffing games like Dobbins or Bobbins

Usage: pip install -r requirements.txt python3 bot.py DISCORD_BOT_TOKEN Gameplay: All commands are case-insensitive, with trailing punctuation and spa

4 May 27, 2022
One of Best renamer bot with python

🌀 One of Best renamer bot repo Please Give a ☆ if You like This Open Source and Don't Forget to Follow Me On Github For More Repos And Codes. Scrappe

1 Dec 14, 2021
A simple Discord Mass Dm with Scraper

Python-Mass-DM A simple Discord Mass Dm with Scraper If Member Scraper in Taliban.py doesn't work. You can DM me cuz that scraper is for tokens that g

RyanzSantos 4 Sep 02, 2022
A program used to create accounts in bulk, still a work in progress as of now.

Discord Account Creator This project is still a work in progress. It will be published upon its full completion. About This project is still under dev

patched 8 Sep 15, 2022
Instagram boosting

instagram boosting bot This bot can boost your instagram account! Rules and Instruction Use git clone to download this repository Open cmd/terminal an

Eskimo 4 Oct 20, 2022
Trabalho N1 para a materia Tecnicas de Progamação da Anhembi Morumbi

Projeto da Anhembi Morumbi - Tecnicas de Programação. RPG de Console (CMD) Trabalho proposto pelo professor André Santana, na materia Tecnicas de Prog

Leonardo Silva M de Barros 3 Sep 12, 2021
A telegram string extractor bot

Made with Python3 (C) @FayasNoushad Copyright permission under MIT License License - https://github.com/FayasNoushad/String-Extract-Bot/blob/main/LIC

Fayas Noushad 12 Jul 19, 2022
Bitstamp API wrapper for Python

NOTICE: THIS REPOSITORY IS NO LONGER ACTIVELY MAINTAINED It is highly unlikely that I will respond to PRs and questions about usage. This library was

Jack Preston 53 Mar 09, 2022
🔎 Hunt down social media accounts by username across social networks

Hunt down social media accounts by username across social networks Installation | Usage | Docker Notes | Contributing Installation # clone the repo $

Sherlock 38.2k Jan 01, 2023
Wrapper for Between - 비트윈을 위한 파이썬 라이브러리

PyBetween Wrapper for Between - 비트윈을 위한 파이썬 라이브러리 Legal Disclaimer 오직 교육적 목적으로만 사용할수 있으며, 비트윈은 VCNC의 자산입니다. 악의적 공격에 이용할시 처벌 받을수 있습니다. 사용에 따른 책임은 사용자가

1 Mar 15, 2022
Send embeds using your discord personal account

Welcome to Embed Sender 👋 Send embeds using your discord personal account Install pip install -r requirements.txt Usage Put your discord token in ./

SkydenFly 11 Sep 07, 2022
A powerfull SMS Bomber for Bangladesh . NO limite .Unlimited SMS Spaming

RedBomberBD A powerfull SMS Bomber for Bangladesh . NO limite .Unlimited SMS Spaming Installation Install my-tool on termux by using thoes commands pk

Abdullah Al Redwan 3 Feb 16, 2022