在 dto 中传递服务信息
Pass service information within 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
}
我还有带有 dto 列表的端点。
我需要为每个响应传递 AvailableActions。
这种情况的最佳做法是什么?
用类似的东西包装每个结果是否正确:
public class Wrapper<T> {
private T data;
private List<Action> availableActions;
// getters/setters
}
有什么想法吗?有什么想法吗?
提前致谢。
是的,包络是一种广泛使用的技术,如何在响应中发送元数据。例如 JSON API 标准使用这种方法。
关于您的代码本身。我更喜欢从 DTO 对象生成 API。对于 JSON API 和 Java 我使用 Katharsis,我只是指定 DTO 并以 JPA 样式对其进行注释 + 创建存储库以进行数据检索。带有链接的包装是自动生成的(以及所有端点 - getOne,getAll ...)。这样我就强制执行 API 标准用法 (JSON API) 并摆脱所有 LinkWrappers、PaginationMetadataWrappers 等...
Twitter 使用类似的 API 构造(search_metadata 附加到响应对象),至少在 this example.
我需要设计 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
}
我还有带有 dto 列表的端点。
我需要为每个响应传递 AvailableActions。 这种情况的最佳做法是什么? 用类似的东西包装每个结果是否正确:
public class Wrapper<T> {
private T data;
private List<Action> availableActions;
// getters/setters
}
有什么想法吗?有什么想法吗? 提前致谢。
是的,包络是一种广泛使用的技术,如何在响应中发送元数据。例如 JSON API 标准使用这种方法。
关于您的代码本身。我更喜欢从 DTO 对象生成 API。对于 JSON API 和 Java 我使用 Katharsis,我只是指定 DTO 并以 JPA 样式对其进行注释 + 创建存储库以进行数据检索。带有链接的包装是自动生成的(以及所有端点 - getOne,getAll ...)。这样我就强制执行 API 标准用法 (JSON API) 并摆脱所有 LinkWrappers、PaginationMetadataWrappers 等...
Twitter 使用类似的 API 构造(search_metadata 附加到响应对象),至少在 this example.