在dto内传递服务信息

时间:2017-01-08 10:31:54

标签: java rest dto

我需要设计REST api,我遇到了将附加服务信息传递给我的DTO的问题。

我喜欢:

public class UserDto implements Serializable {

    private Long id;
    private String login;
    private String firstName;
    private String lastName;
    private String middleName;

    // getters/setters
}

我也有dtos列表的端点。

我需要在每个响应中传递AvailableActions。 这种情况的最佳做法是什么? 用以下内容包装每个结果是否正确:

public class Wrapper<T> {

    private T data;
    private List<Action> availableActions;

    // getters/setters
}

有什么想法吗?任何一个人? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

是的,包络是一种广泛使用的技术,如何使用响应发送元数据。例如,JSON API标准使用此方法。

关于你的代码本身。我更喜欢从DTO对象生成API。使用JSON API和Java,我使用Katharsis,我只使用它来指定DTO并以JPA样式注释它并创建用于数据检索的存储库。带链接的包装是自动生成的(以及所有端点 - getOne,getAll ...)。这样我就强制执行A​​PI标准用法(JSON API)并摆脱所有LinkWrappers,PaginationMetadataWrappers等......

Twitter使用类似的API构造(附加到响应对象的search_metadata),至少在this example中。