java—处理在spring中返回不同DTO的restful服务

x33g5p2x  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(389)

我现在正在处理一个服务,其中有一个方法可以调用另一个端点。这个下游调用返回三种不同的json对象“风格”。现在我处理这个问题的方法是使用这样一个dto类(为了清楚起见,在请求中只发送一个dtox类;2将始终为空):

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor
public class ParentDto {
    private String data;
    private DtoA A;
    private DtoB B;
    private DtoC C;
}

这三个dto中的每一个都包含它们自己的子字段。他们彼此大不相同。我能够处理所有这些,因为注解 @JsonInclude(JsonInclude.Include.NON_NULL) 然而,如果我们能找到一个更清晰的方法,我的团队中的一些人会更愿意这样做。他们宁愿有这样的接口或抽象类:

@Data
@NoArgsConstructor
public class ParentDto {
    private String data;
}

并将其扩展为三个不同的类,如:

@Data
@NoArgsConstructor
public class DtoFlavorA extends ParentDto {
    private ArrayList<String> strings; //add all specific fields here
}

我看不出这是怎么做到的,因为spring需要确切地知道哪些字段将为我们填充它们。在我看来,我必须自己解析传入的json字符串,这实际上违背了首先使用dto的目的。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题