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

如何在OpenAPI生成的Spring接口中禁用请求验证?

解决OpenAPI Generator Maven插件5.1.0生成接口自动添加@Validated注解的问题

以下是两种可行的解决办法,按优先级尝试:

1. 通过插件配置直接禁用验证注解

在maven插件的配置里添加useValidation参数并设置为false,就能让生成器不再给接口添加@Validated注解。配置示例如下:

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>5.1.0</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/api-spec.yaml</inputSpec>
                <generatorName>spring</generatorName>
                <interfaceOnly>true</interfaceOnly>
                <skipDefaultInterface>true</skipDefaultInterface>
                <!-- 禁用自动添加@Validated注解 -->
                <useValidation>false</useValidation>
                <apiPackage>com.your.project.api</apiPackage>
                <modelPackage>com.your.project.model</modelPackage>
                <!-- 其他自定义配置 -->
            </configuration>
        </execution>
    </executions>
</plugin>

2. 自定义模板覆盖生成逻辑

如果上述配置不生效(部分场景下可能因模板差异导致),可以直接修改生成接口的模板:

  • 从OpenAPI Generator 5.1.0版本的Spring模板中复制api.mustache文件(该模板负责生成API接口类)
  • 打开复制的模板文件,找到包含@Validated的代码行(通常是{{#useValidation}}@Validated{{/useValidation}}),将其删除或注释
  • 在插件配置中指定自定义模板的目录:
<configuration>
    <!-- 已有配置 -->
    <templateDirectory>${project.basedir}/src/main/resources/openapi-templates</templateDirectory>
</configuration>

确保openapi-templates目录下的结构和官方模板一致(比如放在spring子目录下,对应generatorName),这样生成器会优先使用你的自定义模板。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:15:29