在REST-WebServices中,我使用DTO类进行请求和响应。我的请求Dto和Response Dto本质上是相同的 - 结构明智,但在请求期间我只向某些字段(caseId和userId)提供值,但在响应bared editedBy和modifiedDate时,我得到Dto的所有其他字段的值。
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本身应该是这样,还是应该在我的请求json中发送整个dto?如果我的Dto课程有任何其他错误,请同时提及。
答案 0 :(得分:0)
您的请求json将只是这样。 在请求DTO json中,您只能看到那些带有某些值的字段。 就像在你的情况下 caseId 和 userId 。
关于响应json,它也没关系,但 caseId 和 userId 可以从响应json中重新启动。正如你已经知道他们的价值观。