Swagger忽略了生成代码的必填字段

y1aodyip  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(500)

我有这样元素:

@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>

JacksonBean -默认配置,不包含任何添加的模块等。
有没有人可以帮助我?如何回应坏的请求没有使命名称在身体的要求?

uoifb46i

uoifb46i1#

我在使用io.openapiprocessor:openapi-processor-spring时遇到了类似的问题。没有生成验证注解。
原因是缺少“bean验证:true”选项部分。对于必填字段,它现在在Java字段的@JsonProperty注解旁边生成@NotNull。此外,@Valid注解现在添加到控制器API接口中方法的主体参数中。

相关问题