假设您在典型的Java Web应用程序中有一个实体User
。例如。 Spring框架,Hibernate ORM等等User
有一些关系,例如:
public class User {
// primitive fields
private Team team;
private Set<Group>;
// ...
}
您可以轻松浏览用户的图表,例如user.getTeam().getName()
通过REST API公开此类实体并从Java客户端访问它们的最佳做法是什么?
E.g。当我需要通过id
加载用户时。我是否应该收到包含team
和groups
的回复?如果每次获取用户时我都不需要这些关系,那该怎么办呢?
问题更多的是关于设计Java客户端。
答案 0 :(得分:0)
在我看来,这取决于Team
对象的大小和用法。如果它非常小或者在您需要用户时始终需要,您可以在致电User
时将其直接附加到Get /users/{id}
。否则,Team
将获得Get /users/{id}/team
。
最佳做法是HATEOAS。对Get /users/{id}
的调用将返回一个用户json对象,该对象还通过将路径(Get /users/{id}/team
)包含在其中来指示团队属性。但是,由于这是一项很多工作,人们可能不会采取额外措施。
答案 1 :(得分:0)