我在Tomcat上运行MySQL DB和SpringBoot应用程序。这是我的个人项目,也是我设计REST服务的第一次经历。我一直在尝试创建我的POJO以匹配数据库,但这个特定的对象产生了一些疑问。
以下是主要数据库表:
...以及以下联结表:
我特别想知道如何设计我的JSON响应以及专门针对Resource对象的相应POJO。
我到目前为止所想的是有三个单独的URI:
我为资源创建了一个POJO:
public class Resource {
private String resourceId;
private String shortDescription;
private String longDescription;
private ResourceType resourceType;
private List<Component> components;
// getters and setters
}
我为CampaignResource和PlayerResource创建了两个额外的POJO:
public class CampaignResource {
private String campaignResourceId;
private Resource resource;
// getters and setters
}
public class PlayerResource {
private String playerResourceId;
private Resource resource;
// getters and setters
}
我希望URI#1和#2返回相同的布局,但我对URI#3有冗余问题。 URI#2可以返回10个很好且预期的资源,但URI#3可以返回数百个,具体取决于玩家携带的内容。
调用URI#3时我真正需要的唯一信息是player_resource_id,resource_id和resource_type_id字段。我不需要知道哪些组件构成了资源,因为使用URI#1或URI#1以更易于管理的方式恢复该信息。
我害怕创建单独的&#34; base&#34;资源POJO因为我觉得有义务遵循某种形式的规范建模。我可以使用像JsonView这样的东西,根据它的URI#1,#2还是#3来分离Resource RowMappers?我可以实现某种形式的分页,但它仍然有很多冗余数据。经验丰富的REST开发人员如何处理这个问题?
答案 0 :(得分:0)
为什么需要为每个REST API创建包含资源的单独类。只需返回#1的一个资源和#2和#3的资源列表。
答案 1 :(得分:0)