使请求体中的一个属性不需要



我有以下接口:

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. 通常最好为每个端点使用1个这样的模型,以便它们是独立的。如果您在端点之间共享模型,这应该是有用的

  2. 这可能有帮助

您可以使用@JsonIgnoreProperties注释

的例子:

@JsonIgnoreProperties(value = {"email"})
public interface TestRequestView {
String getCountryCode();
String getRegionCode();
@JsonProperty(required = false)
String getEmail();
}

在类级别为TestRequestView添加注释@JsonInclude(Include.NON_NULL)。当传递你的参数时,你可以不带那个值传递它,在你的控制器中,它会被接收到那个参数为null。你只需要确保你的控制器可以处理这种情况

最新更新