You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级OpenAPI 3.1后查询参数在生成器与Swagger UI中异常

升级OpenAPI至3.1.0后Swagger UI无法渲染deepObject风格查询参数

技术栈

<java.version>17</java.version>

<spring.boot.version>3.1.1</spring.boot.version>

<org.springdoc.openapi.version>2.2.0</org.springdoc.openapi.version>

OpenAPI描述

"/v1/rente/auskunft/{annr}": {
    "get": {
        "operationId": "rentenAuskunft",
        "parameters": [
            {
                "in": "path",
                "name": "annr",
                "description": "arbeitnehmernummer",
                "required": true,
                "schema": {
                    "type": "integer",
                    "format": "int64"
                }
            },
            {
                "in": "query",
                "style": "deepObject",
                "explode": true,
                "name": "rentenAuskunftParamsDto",
                "required": true,
                "schema": {
                    "$ref": "#/components/schemas/RentenAuskunftParamsDto"
                }
            }
        ]
    }
}

OpenAPI生成器Maven插件配置

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>7.5.0</version>
    <executions>
        <execution>
            <id>rente-api</id>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <generatorName>spring</generatorName>
                <library>spring-boot</library>
                <skipIfSpecIsUnchanged>true</skipIfSpecIsUnchanged>
                <generateApis>true</generateApis>
                <generateApiDocumentation>true</generateApiDocumentation>
                <generateApiTests>false</generateApiTests>
                <generateModels>true</generateModels>
                <generateModelDocumentation>false</generateModelDocumentation>
                <generateModelTests>false</generateModelTests>
                <generateSupportingFiles>true</generateSupportingFiles>
                <output>${project.build.directory}/generated-sources</output>
                <modelPackage>xxx.model</modelPackage>
                <apiPackage>xxx.api</apiPackage>
                <skipValidateSpec>false</skipValidateSpec>
                <typeMappings>
                    <typeMapping>OffsetDateTime=java.time.LocalDateTime</typeMapping>
                </typeMappings>
                <schemaMappings>
                </schemaMappings>
                <configOptions>
                    <sourceFolder>main/java</sourceFolder>
                    <useSpringBoot3>true</useSpringBoot3>
                    <validateSpec>false</validateSpec>
                    <interfaceOnly>true</interfaceOnly>
                    <!--Use modern java8 date/time api-->
                    <dateLibrary>java8</dateLibrary>
                    <!--Enable bean validation using javax validation and hibernate validator-->
                    <useBeanValidation>true</useBeanValidation>
                    <performBeanValidation>true</performBeanValidation>
                    <openApiNullable>false</openApiNullable>
                    <!--Place required parameters first in models-->
                    <sortModelPropertiesByRequiredFlag>true</sortModelPropertiesByRequiredFlag>
                    <sortParamsByRequiredFlag>true</sortParamsByRequiredFlag>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

生成的API代码

@RequestMapping 
(method = RequestMethod.GET,value ="/v1/rente/auskunft/{annr}",
produces = {"application/json"})
default
ResponseEntity<RentenAuskunftResponse>rentenAuskunft(
@Parameter
(name ="annr",description ="arbeitnehmernummer",required =true,in = ParameterIn.PATH)
@PathVariable("annr") Long annr,
@NotNull @Parameter(name ="rentenAuskunftParamsDto",required =true,in = ParameterIn.QUERY)
@Valid
 RentenAuskunftParamsDto rentenAuskunftParamsDto)

问题

将OpenAPI版本从3.0.3升级至3.1.0后,Swagger UI无法以对象样式渲染查询参数,配置的deepObject风格未生效,同时nullable配置也不起作用,需要解决这两个问题。


内容的提问来源于stack exchange,提问作者csk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 12:07:06