[英]Jersey REST request object change
我的客戶端和服務器對POST使用以下請求對象:
class Person{
String name = "";
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
現在,我服務器的請求對象已更改為包含年齡-
class Person{
String name = "";
int age = 0;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
同樣,服務器的響應對象還包括現在的年齡。
舊客戶端與新服務器不兼容,由於InvocationTargetException
,引發了400錯誤的請求。
服務器是否可以接受舊請求並將空字段設置為默認值?
如果使用的是json,則可以將json框架設置為忽略未知字段
在客戶端:
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
要么
// jackson 1.9 and before
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// or jackson 2.0
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
在服務器端
jackson 1.x
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
要么
jackson 2.x
@JsonInclude(Include.NON_NULL)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.