2016-04-19 431 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。你已经知道他们的价值。