15

有没有关于JSON RESTful 接口的教程(使用JAVA servlet)?目的是调用外部REST接口获取数据,并由客户端(javascript客户端)处理数据。

我不确定JAVA中的JSON REST接口到底是什么样的东西......我需要一些教程才能开始学习,所以......我在这里问。

4

1 回答 1

21

JSON是一种基于 JavaScript 子集的轻量级数据序列化格式。

RESTful 接口是一种符合REST 架构风格的约束和特征的接口。

因此,将两者结合起来,JSON RESTful 接口是一种遵循 REST 架构风格并使用 JSON 作为其数据表示格式(通常是内容类型application/json)的接口。

要在 Java 中实现此类服务,有一些框架可以帮助您,例如JerseyRESTEasy。两者都提供支持 JSON(用于传入和传出数据)的附加组件。

编辑:

Jersey 和 RESTEasy 都实现了 JAX-RS 规范,因此可以将其中任何一种用作“纯”Java EE 做事方式。如果您只想使用 Java EE 的Servlet部分来执行此操作,这是可能的,但您必须自己做一些事情,例如从 URI 解析路径/模板参数。

您可能会发现很难使用servlet-mapping元素来描述您的资源 URL,这可能会导致您实现一些看起来非常像 JAX-RS 的东西(如果您最终使用一个控制器 servlet 来解析 URI 并将请求分派给另一个对象)。

在您决定如何实现之前,我建议您阅读更多关于 REST 的内容。这里有一些提示:

  • 客户端和服务器之间的通信应该是无状态的。避免HttpSession.
  • REST 以资源为中心,而不是以操作为中心(如 RPC)。想想您的服务公开的资源并提供这些 URI。
  • REST 资源通过一个通用接口进行操作。对于 HTTP 服务,此接口由 HTTP 动词(GET、POST、PUT、DELETE 等)定义。确保您阅读了 RFC 2616 的第 9 节,以了解每个动词的语义以及它们应该做什么和不应该做什么的规则。
  • 研究RFC 2616 中的响应状态代码和原因短语。这些是您的通用界面的一部分。
  • RESTful 服务返回资源的表示。表示具有内容类型,请确保设置此标头以便客户端可以理解您的响应。

最后,如果您选择“纯 Servlets”路线,您可能仍然会发现使用Jackson之类的解析器库读取/创建 JSON 会容易得多。

于 2011-03-29T08:47:57.183 回答