什么是 JSON REST 接口
Posted
技术标签:
【中文标题】什么是 JSON REST 接口【英文标题】:what is JSON REST interface 【发布时间】:2011-07-25 02:22:46 【问题描述】:有没有关于JSON RESTful 接口(使用JAVA servlet)的教程?目的是调用外部REST接口获取数据,并由客户端(javascript客户端)处理数据。
我不确定JAVA中的JSON REST接口到底是什么东西...我需要一些教程才能开始学习,所以...我在这里问。
【问题讨论】:
【参考方案1】:JSON 是一种基于 JavaScript 子集的轻量级数据序列化格式。
RESTful 接口是符合REST architectural style 的约束和特征的接口。
因此,结合两者,JSON RESTful 接口是一种遵循 REST 架构风格并使用 JSON 作为其数据表示格式(通常为内容类型application/json
)的接口。
要在 Java 中实现此类服务,有一些框架可以帮助您,例如 Jersey 或 RESTEasy。两者都提供支持 JSON 的附加组件(用于传入和传出数据)。
编辑:
Jersey 和 RESTEasy 都实现了 JAX-RS 规范,因此可以将其中任何一种用作“纯”Java EE 做事方式。如果您只想使用 Java EE 的 Servlet 部分来执行此操作,这是可能的,但您必须自己做一些事情,例如从 URI 解析路径/模板参数。
您可能会发现很难使用servlet-mapping
元素来描述您的资源 URL,这可能会导致您实现一些看起来非常像 JAX-RS 的东西(如果您最终使用一个解析 URI 和将请求分派给另一个对象)。
我建议您在决定如何实现之前阅读更多关于 REST 的内容。这里有一些提示:
客户端和服务器之间的通信应该是无状态的。避免使用HttpSession
。
REST 以资源为中心,而不是以操作为中心(如 RPC)。想想您的服务公开的资源并提供这些 URI。
REST 资源通过通用接口进行操作。对于 HTTP 服务,此接口由 HTTP 动词(GET、POST、PUT、DELETE 等)定义。请务必阅读 section 9 of RFC 2616 以了解每个动词的语义以及它们应该做什么和不应该做什么的规则。
研究response status codes and reason phrases in RFC 2616。这些是您常用界面的一部分。
RESTful 服务返回资源的表示。表示具有内容类型,请确保设置此标头,以便客户端可以理解您的响应。
最后,如果您走“纯 Servlets”路线,您可能仍然会发现使用 Jackson 之类的解析器库读取/创建 JSON 会容易得多。
【讨论】:
如果我想使用纯 servlet 怎么办...如何实现这个 JSON REST 接口?有这方面的教程吗? 恐怕我手头没有任何教程链接 - 我已经用更多信息更新了我的答案。如果可以的话,我当然会推荐使用 JAX-RS 实现。 感谢您的详细回复!我将看看 JAX-RS。问候!以上是关于什么是 JSON REST 接口的主要内容,如果未能解决你的问题,请参考以下文章
BIRT 如何用 rest api 接口获取 json 做报表