首页 > 解决方案 > Swagger 忽略了生成代码的必填字段

问题描述

我有这样的元素:

@ApiModel(description = "...")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen")
public class MissionContext   {
  @JsonProperty("missionName")
  private String missionName;
....
  @ApiModelProperty(required = true, value = "")
  public String getMissionName() {
    return missionName;
  }
...
}

好的,这看起来不错,并且在发布请求的正文中应该需要这个任务名称,但事实并非如此。

我的 openapi 3.0.0 定义:

    MissionContext:
      type: object
      description: text
      properties:
        missionName:
          type: string
      required: [ missionName ]

生成代码的部分

 <plugin>
        <groupId>org.openapitools</groupId>
        <artifactId>openapi-generator-maven-plugin</artifactId>
        <version>${openapi.generator.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <apiPackage>com.fake</apiPackage>
              <generateSupportingFiles>false</generateSupportingFiles>
              <generatorName>spring</generatorName>
              <inputSpec>${project.basedir}/src/etc/file.yaml</inputSpec>
              <configOptions>
                <interfaceOnly>true</interfaceOnly>
                <modelPackage>portal</modelPackage>
                <skipDefaultInterface>true</skipDefaultInterface>
                <useBeanValidation>false</useBeanValidation>
              </configOptions>
            </configuration>
          </execution>
        </executions>
      </plugin>

Jackson bean - 没有任何添加模块等的默认配置。

有人可以帮我吗?如何在正文请求中响应没有任务名称的错误请求?

标签: javajacksonswaggeropenapi-generator

解决方案


推荐阅读