我正在建立一个网络服务,以支持我为我们的校园杂志制作的Android电子阅读器应用程序。该服务需要将issue
个对象返回给应用程序,每个对象都有一个封面图像和一组要显示的文章。我想对我正在考虑的两种策略做一些一般性的输入,和/或对我遇到的一些问题的一些具体帮助:
策略1:有2个数据库表,Issues
和Articles
:Issues
表只包含int id
,varchar name
和{{ 1}}。 varchar imageURI
包含更多列(标题,内容,模糊等),每篇文章都在一个单独的行中。其中一列是Articles
,它指向文章所属的问题。当请求问题编号n时,服务首先从issueID
表中提取其数据并使用它来创建新的Issue对象。构造函数将新Issues
实例化为实例变量,并通过从List<Article>
表中提取具有匹配的issueID的所有文章来填充它。我无法弄清楚这个选项究竟是如何在单个端点执行它,所以应用程序只需要创建一个HTTP连接来获取它所需的一切(或者这不像我想的那么重要)是什么?)。
有一个Articles
表,其中包含Issues
,id
和name
列,以及大量其他imageURI
列。在将文章上载到服务器之前,文章被打包到JSONObjects中,并且这些JSONObjects(将非常长)直接存储在数据库中。我担心的是文本文件太长了,而且我怀疑这个策略不符合最佳实践(尽管我无法理解为什么......)
另外,这是我的第一个Web服务,并且考虑到上面指定的要求,建议使用Spring(或其他一些)框架,还是我最好只使用JAX-RS?
答案 0 :(得分:0)
这里有两个问题
为了实现您的网络服务,泽西岛是我最喜欢的选择。它是JSR 311(JAX-RS)的开源参考实现。此外,Jersey使用Jackson自动处理JSON / Object映射。
要存储您的数据,您的第二个选项......显然不是一个选项:) 第一个解决方案似乎可行。 恕我直言,因为你的应用程序看起来很小,你不应该放置JPA / Hibernate等。你应该简单地用问题和文章之间的JOIN手工制作一个请求,填充所请求的问题然后让Jackson自动将你的对象转换为JSON。 / p>