应用背景
问题
[使用开放API 3.0创建的swagger模板已使用swagger-codegen-maven-plugin转换为pojos。
这里是生成pojo
public class TestPojo {
@JsonProperty("isNameValid")
private Boolean isNameValid = null;
@Schema(
required = true,
description = "Checks if name is Valid "
)
public Boolean isIsNameValid() {
return this.isNameValid;
}
}
这里是使用的招摇模板
openapi: 3.0.1
info:
title: XM MNOLine Domain Definitions
description: |
version: "V0.0.1"
components:
schemas:
TestPojo:
required:
- isNameValid
properties:
isNameValid:
type: boolean
description: |
Checks if name is Valid
在控制器中,@ Valid批注似乎没有任何影响。.仍会处理字段“ isNameValid”的值为空或没有值。。
processRequest(@Valid @RequestBody TestPojo request)
我想念的..
如果我理解正确,那么您希望您的“ isNameValid”字段出现在请求中,否则引发异常。
public class TestPojo {
@JsonProperty("isNameValid")
@NotNull
private Boolean isNameValid;
public void setIsNameValid(Boolean isNameValid) {
this.isNameValid = isNameValid;
}
public Boolean isNameValid() {
return isNameValid;
}
}
以上代码将不允许该字段的null
值,即请求将需要具有isNameValid
。
我希望它能解决您的问题。
如果我误解了您的要求,请告诉我,并将尝试解决您的问题。编辑
[嗨,我目前没有任何正在进行的项目使用大张旗鼓的开放API,因此我无法对其进行测试,但是可以检查Validate spring contracts。
我希望这会有所帮助,否则请告诉我。
祝你好运!