什么是JSON REST接口

15

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

我不确定什么是JAVA中的JSON REST接口...... 我需要一些教程来开始学习,所以......我在这里问一下。

1个回答

21

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

符合 REST 架构风格 约束和特征的接口称为 RESTful 接口。

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

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

编辑:

Jersey 和 RESTEasy 都实现了 JAX-RS 规范,因此可以将它们作为“纯”Java EE 实现方式之一。如果您想仅使用 Java EE 的 Servlet 部分来完成此操作,则可能需要自己解析 URI 中的路径/模板参数等。

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

我建议在决定如何实现之前先阅读更多关于 REST 的内容。以下是一些指针:

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

最后,如果您选择“纯Servlet”路线,仍然可能会发现使用解析器库(如Jackson)更容易读取/创建JSON。


如果我想使用纯servlet,如何实现JSON REST接口?有没有相关的教程? - Mellon
很抱歉,我手头没有任何教程链接 - 我已经更新了我的答案并提供了更多信息。如果可以的话,我肯定会建议使用JAX-RS实现。 - joelittlejohn
感谢您详细的回复!我会去研究JAX-RS。祝好! - Mellon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接