定义中 "required" 字段的 Swagger-codegen 实施

Swagger-codegen enforcement of "required" fields in Definitions

我在我的 yaml 文件中将这些字段标记为必填(swagger 规范)

  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

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

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