Spring 将请求dto和响应dto合并到一个dto中

Spring 将请求dto和响应dto合并到一个dto中,spring,dto,Spring,Dto,我注意到,对于请求和响应,我经常需要一个单独的DTO,因为请求添加了验证约束,而响应通常包含更多的数据 例如: package be.ambrassade.jeugdlink.model.request; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; public class AnswerRequest { @Size(min = 10, max = 100

我注意到,对于请求和响应,我经常需要一个单独的DTO,因为请求添加了验证约束,而响应通常包含更多的数据

例如:

package be.ambrassade.jeugdlink.model.request;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class AnswerRequest {
    @Size(min = 10, max = 1000)
    @NotNull
    private String message;


    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
以及:


是否有任何方法可以将它们组合到一个通用DTO中以获得答案,或者以某种方式进行验证和属性过滤?我必须补充的是,相当多的数据是由数据库层生成的,例如id、postedOn时间戳等。

我通常做的是拥有通用的请求和响应DTO,同时根据业务模型保留实体对象。在这种方法中,响应的示例如下所示

public class ResponseDTO {

//SUCCESS / FAILURE
private String status;
//failure message if any
private String message;

//response pay load. eg. AnswerDTO
private Object payload;


}

将它们作为单独的对象使用会更好。你总是对输入和输出有把握。你为什么要这样做?@uğurtaş作为一种学习我不熟悉的更具体的方法的方式。例如,我看到Jackson注释可以用来调用不同的序列化类,所以这可能是一种不同的方法。
public class ResponseDTO {

//SUCCESS / FAILURE
private String status;
//failure message if any
private String message;

//response pay load. eg. AnswerDTO
private Object payload;


}