首页 > 解决方案 > 如何使用 OpenAPI 3.0 创建同一请求的多个版本?

问题描述

我使用 maven Swagger Codegen V3 插件从 yaml 文件生成 API。我想生成具有相同路径但不同主体类型的不同版本的休息请求。

我使用这个 YAML 代码来生成它。

content:
    application/json;version=1.0.0:
      schema:
        $ref: '#/components/schemas/Object1'
    application/json;version=2.0.0:
      schema:
        $ref: '#/components/schemas/Object2'

我得到以下结果:

@Consumes({ "application/json;version=1.0.0", "application/json;version=2.0.0" })
...
public void method(Object1 body);

@Consumes({ "application/json;version=1.0.0", "application/json;version=2.0.0" })
...
public void method(Object2 body);

但我需要的结果如下所示。

@Consumes({ "application/json;version=1.0.0" })
...
public void method(Object1 body);

@Consumes({ "application/json;version=2.0.0" })
...
public void method(Object2 body);

我使用 consumes 参数进行版本控制。那么有没有办法得到我想要的结果?

标签: javaswaggeropenapiswagger-codegen

解决方案


这是一个限制 Swagger Codegen v3 目前不支持多个有效负载。Petstore OpenAPI 文档具有可以发送 JSON 或 XML 有效负载的端点,但输出(自动生成的代码)目前仅支持 JSON 。


推荐阅读