分别请求DTO和响应DTO json请求主体和响应主体

时间:2016-04-19 10:06:37

标签: json request response dto spring-restcontroller

在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课程有任何其他错误,请同时提及。

1 个答案:

答案 0 :(得分:0)

您的请求json将只是这样。 在请求DTO json中,您只能看到那些带有某些值的字段。 就像在你的情况下 caseId userId

关于响应json,它也没关系,但 caseId userId 可以从响应json中重新启动。正如你已经知道他们的价值观。