实现RESTful服务

时间:2013-04-18 19:32:19

标签: java android spring rest jax-rs

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

  • 策略1:有2个数据库表,IssuesArticlesIssues表只包含int idvarchar name和{{ 1}}。 varchar imageURI包含更多列(标题,内容,模糊等),每篇文章都在一个单独的行中。其中一列是Articles,它指向文章所属的问题。当请求问题编号n时,服务首先从issueID表中提取其数据并使用它来创建新的Issue对象。构造函数将新Issues实例化为实例变量,并通过从List<Article>表中提取具有匹配的issueID的所有文章来填充它。我无法弄清楚这个选项究竟是如何在单个端点执行它,所以应用程序只需要创建一个HTTP连接来获取它所需的一切(或者这不像我想的那么重要)是什么?)。

  • 有一个Articles表,其中包含Issuesidname列,以及大量其他imageURI列。在将文章上载到服务器之前,文章被打包到JSONObjects中,并且这些JSONObjects(将非常长)直接存储在数据库中。我担心的是文本文件太长了,而且我怀疑这个策略不符合最佳实践(尽管我无法理解为什么......)

    < / LI>

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

1 个答案:

答案 0 :(得分:0)

这里有两个问题

  1. 如何将对象转换为JSON并使用休息服务公开它们。
  2. 如何存储/检索数据。
  3. 为了实现您的网络服务,泽西岛是我最喜欢的选择。它是JSR 311(JAX-RS)的开源参考实现。此外,Jersey使用Jackson自动处理JSON / Object映射。

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