Swagger-codegen执行"要求"定义中的字段

时间:2018-04-02 21:42:09

标签: swagger maven-plugin swagger-codegen

我在yaml文件中标记了这些字段(swagger spec)

  MyType:
    type: object
    required:
      - name
      - amount

我正在使用带有这些配置的swagger codegen maven插件:

<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.2.3</version>

<language>spring</language>
<library>spring-mvc</library> 

我希望在生成的类中也需要规范中的必填字段。但目前这种情况并没有发生。

是否有配置选项可以做到这一点?我有<useBeanValidation>true</useBeanValidation>但这似乎对我不起作用。

我在Swagger-codegen GitHub页面上看到了一个类似的请求enforcement of "required" fields in Definitions,其中建议使用useBeanValidation并且我确实拥有它但它仍然无效。

在Swagger-codegen GitHub页面上创建了此请求:Swagger-codegen enforcement of “required” fields in generated model classes

1 个答案:

答案 0 :(得分:2)

找到解决方案。这实际上是我的错误;我期望生成的类中的字段被标记为必需。它是 getter 方法,它用@NonNullrequired = true注释,解决了这个问题。现在,通过验证,我可以看到验证被触发并在请求有效负载中未传递金额时显示消息Amount should be present

@ApiModelProperty(required = true, value = "Amount should be present")
@NotNull
public Amount getAmount() {
    return amount;
}