2016-04-19 153 views
1

在REST-WebServices中,我使用DTO類來請求和響應。我的請求Dto和響應Dto基本上是相同的 - 結構明智的,但在請求期間,我只提供某些字段的值(caseId和userId在這裏),但作爲響應禁止editedBy和modifiedDate,我得到Dto的所有其他字段的值。分別請求DTO和響應DTO json請求主體和響應主體

public class ProcedureRequestDTO{ 
private ProcedureDTO procedure; 
     // getters & setters 
} 

public class ProcedureResponseDTO{ 
private ProcedureDTO procedure; 
    // getters & setters 
} 

public class ProcedureDTO{ 
private Integer procedureId; 
private Integer procedureName; 
private Integer caseId; 
private Integer userId; 
private Integer ownerId; 
private Integer editedBy; 

@JsonInclude(value=Include.ALWAYS) 
@JsonDeserialize(using=ZonedDateTimeJsonDeserializer.class) 
@JsonSerialize(using=ZonedDateTimeJsonSerializer.class) 
@JsonFormat(shape=Shape.NUMBER) 
private ZonedDateTime createdDate; 

@JsonInclude(value=Include.ALWAYS) 
@JsonDeserialize(using=ZonedDateTimeJsonDeserializer.class) 
@JsonSerialize(using=ZonedDateTimeJsonSerializer.class) 
@JsonFormat(shape=Shape.NUMBER) 
private ZonedDateTime modifiedDate; 
    // getters & setters 
} 

所以我應該在我的請求json中包含所有字段或只包含那些有值的字段。這裏是我的請求和響應jsons:

請求JSON: -

{ 
    "procedure":{ 
     "caseId": 1, 
     "userId": 1 
    } 
} 

響應JSON: -

{ 
    "procedure":{ 
     "procedureId": 1, 
     "procedureName": "proc1", 
     "caseId": 1, 
     "userId": 1, 
     "ownerId": 1, 
     "editedBy": null, 
     "createdDate": 1461059413000, 
     "modifiedDate": null 
    } 
} 

應我的請求和響應jsons是這樣本身或者我應該將整個dto在我的請求json?如果我的Dto課程還有其他錯誤,請提及他們。

回答

0

您的請求json將只是這樣。 在請求DTO json時,您只能看到那些帶有某些值的字段。 像你這樣的情況caseId and userId

和約響應JSON,也精但caseId用戶id可以從響應JSON redundent。你已經知道他們的價值。