我有以下接口:
public interface TestRequestView {
String getCountryCode();
String getRegionCode();
}
它在几个结束点中使用,如:
@PostMapping("/my/path/{id}")
public String test(@RequestBody TestRequestView request, @PathVariable String id) {
...
}
我想添加一个属性到TestRequestView,只在一个新的端点中使用而不破坏其余的,我怎么能标记一个属性为可忽略的?比如:
public interface TestRequestView {
String getCountryCode();
String getRegionCode();
String getEmail(); // make this not required
}
-
通常最好为每个端点使用1个这样的模型,以便它们是独立的。如果您在端点之间共享模型,这应该是有用的
-
这可能有帮助
您可以使用@JsonIgnoreProperties
注释
的例子:
@JsonIgnoreProperties(value = {"email"})
public interface TestRequestView {
String getCountryCode();
String getRegionCode();
@JsonProperty(required = false)
String getEmail();
}
在类级别为TestRequestView
添加注释@JsonInclude(Include.NON_NULL)
。当传递你的参数时,你可以不带那个值传递它,在你的控制器中,它会被接收到那个参数为null。你只需要确保你的控制器可以处理这种情况