0

我正在构建一个 Web 服务来支持我正在为我们的校园杂志制作的 Android 电子阅读器应用程序。该服务需要将issue对象返回给应用程序,每个对象都有一个封面图片和一组要显示的文章。我想对我正在考虑的两种策略提供一些一般性意见,和/或对我遇到的一些问题提供一些具体帮助:

  • 策略 1:拥有 2 个数据库表,Issues并且Articles:该Issues表仅包含一个int id,varchar namevarchar imageURIArticles包含更多列(标题、内容、简介等),每篇文章位于单独的行中。其中一列是issueID,它指向文章所属的问题。当请求第 n 个问题时,服务首先从Issues表中提取其数据并使用它来创建一个新的问题对象。构造函数将 new 实例List<Article>化为实例变量,并通过从Articles桌子。我无法弄清楚这个选项究竟是如何在单个端点上执行它,因此应用程序只需创建一个 HTTP 连接即可获得解决问题所需的一切(或者这不像我认为的那么重要是?)。

  • 有一个Issues包含 、 和 列的idnameimageURI以及大量附加text Article1... text Article40列。文章在上传到服务器之前被打包成JSONObjects,这些JSONObjects(会很长)直接存储在数据库中。我担心的是文本文件会太长,而且我怀疑这种策略不符合最佳实践(尽管我无法解释为什么......)

另外,这是我的第一个 Web 服务,并且考虑到上面指定的要求,是否建议使用 Spring(或其他)框架,或者我最好只使用 JAX-RS?

4

1 回答 1

0

这里有2个问题

  1. 如何将您的对象转换为 JSON 并使用休息服务公开它们。
  2. 如何存储/检索您的数据。

要实现您的 Web 服务,Jersey 是我最喜欢的选择。它是 JSR 311 (JAX-RS) 的开源参考实现。此外,Jersey 使用 Jackson 来自动处理 JSON/Object 映射。

要存储您的数据,您的第二个选项......显然不是一个选项:) 第一个解决方案似乎可行。恕我直言,由于您的应用程序看起来很小,因此您不应该放置 JPA/Hibernate 等。您应该简单地在问题和文章之间使用 JOIN 手动发出一个请求,填充请求的问题,然后让杰克逊自动将您的对象转换为 JSON。

于 2013-04-18T19:57:54.900 回答