2016-04-19 3 views
1

REST-WebServicesでは、リクエストとレスポンスにDTOクラスを使用します。私のリクエストDtoとレスポンスDtoは本質的に同じですが、構造的には問題ありませんが、リクエスト中は特定のフィールド(ここではcaseIdとuserId)に値を提供しますが、editedByとmodifiedDateを除いてレスポンスでは、リクエストボディとレスポンスボディそれぞれに対して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はこのように自分自身であるべきか、私は全体を送信する必要があります私の要求のjsonのdto?私のDtoクラスに他の間違いがある場合は、それらについても言及してください。

答えて

0

お客様のリクエストjsonはこのようなものです。 DTO jsonでは、ある値を持つフィールドだけが表示されます。 あなたのような場合ケースIDuserIdです。

とレスポンスJSONについて、それも結構ですが、caseIdのuserIdは、応答JSONからredundentすることができます。あなたはすでにその価値を知っています。