12 Star 45 Fork 14

Gitee 极速下载/OpenAPI-Generator

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/OpenAPITools/openapi-generator
Clone or Download
migration-guide.adoc 4.70 KB
Copy Edit Raw Blame History

Migration guide between OpenAPI-Generator versions

This page summaries the important changes between major and minor version of OpenAPI-Generator. It does not contain a detailed list of changes, for that refer to each individual release notes.

This page is written to help migration by indicating the most impacting changes. Do not hesitate to contribute additional notes if you discover something during your migration and think that the information might help other users.

Another approach to find breaking changes is to look at issue and pull requests with following labels:

From 3.x to 4.0.0

Version 4.0.0 is a major release, which contains some breaking changes without fallback.

The -l (--lang) option has been deleted

The option is replaced with -g (--generator-name).

  • -g allows the same values as -l

  • See list command for the list of generator name

Access OpenAPI instance as member and not as parameter

If you are creating or extending a generator (programmatically), you might have use one of the following parameters: OpenAPI openAPI or Map<String, Schema> allDefinitions or Map<String, Schema> allSchemas. Example methods:

  • CodegenConfig#fromOperation(String, String, Operation, Map<String, Schema>, OpenAPI)

  • CodegenConfig#fromModel(String, Schema, Map<String, Schema>)

  • DefaultCodegen#fromResponse(OpenAPI, String, ApiResponse)

  • DefaultCodegen#DefaultCodegen.fromRequestBody(RequestBody, Map<String, Schema>, Set<String>, String)

  • DefaultCodegen#createDiscriminator(String, Schema, Map<String, Schema>)

  • …​

The parameters (openAPI, allDefinitions, allSchemas …​) are now removed from the methods.

To access the current OpenAPI instance, if you are extending DefaultCodegen you can use the protected openAPI member.

If you are creating your own generator by implementing CodegenConfig, then the setter CodegenConfig.setOpenAPI(OpenAPI) will be called. You can keep a reference on the OpenAPI instance.

From 3.1.x to 3.2.0

Version 3.2.0 is a minor version of OpenAPI-Generator, in comparison to 3.1.x it contains some breaking changes, but with the possibility to fallback to the old behavior. The default value of some options might change. Projects relying on generated code might need to be adapted.

Validate spec on generation by default

The default is to validate the spec during generation. If the spec has errors, they will appear as errors or warnings to the user. This prevents generation of the project.

If you want to switch back to the 3.1.x behavior you can use:

  • Set the validateSpec option to false if you are using the Maven or Gradle plugin

  • Use the command line option --skip-validate-spec if you are using the CLI

Model (all languages)

In CodegenModel and in CodegenOperation we use now our own class org.openapitools.codegen.CodegenDiscriminator instead of io.swagger.v3.oas.models.media.Discriminator.

For the templates, this is not an API change, because the same values are available.

If you have your own Codegen class (to support your own generator for example) then you might get some compile error due to the change.

Java

Schema with enum values are mapped to java enum in the generated code. In previous version, when an unknown value was deserialized, the value was set to null.

With 3.2.0 a new option is introduced: useNullForUnknownEnumValue.

  • When set to false (default value), an Exception (IllegalArgumentException) is thrown when the value not available in the enum.

  • When set to true, unknown values are mapped to null as it was the case in previous versions.

From 3.0.x to 3.1.0

Version 3.1.0 is the first minor version of OpenAPI-Generator, in comparison to 3.0.3 it contains some breaking changes, but with the possibility to fallback to the old behavior. The default value of some options might change. Projects relying on generated code might need to be adapted.

Java

A new option is introduced with #432 to specify the prefix of boolean getters: booleanGetterPrefix. Possible values:

  • is: the value used in 3.0.x.

  • get: the new default value.

If you use the default value you will see your generated code changing from isActive() to getActive().

Migrating from Swagger-Codegen

Please read the specific migration guide: From Swagger-Codegen to OpenAPI-Generator

Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors/OpenAPI-Generator.git
git@gitee.com:mirrors/OpenAPI-Generator.git
mirrors
OpenAPI-Generator
OpenAPI-Generator
master

Search