我们使用 org.json api 在服务器端解析 json,在客户端使用 GWT JsonParser 解析 JSON。是否有我们可以使用的 api 可以在客户端和服务器端使用?
2 回答
与使用 autobeans 或 GWT-RCP 相比,我正在写这篇文章 - 如果您在服务器上使用 Java。尤其如此,如果你不是。
最简洁的方式是 REST-RPC/JPA,您可以在其中在客户端、服务器和持久性数据库之间共享一组 POJOS。让我代表这种技术组合吹嘘——一组 POJO,而不是三组,在三个前沿之间没有任何(或最小)转换。
您不必编写任何数据转换例程。或者至少,由于序列化约束或因为您试图将 GWT 和 REST 与呈现高度不可序列化性的现有模式接口,因此只有最少量的数据转换。
此外,与 GWT-RPC 类似,在客户端-服务器端共享一组 Java RPC 方法。好吧,几乎相同的一组方法。除了服务器端的返回类型变成客户端的回调泛型参数。
技术组合是:
- JAX-RS(服务器端的 Resteasy 或 Jersey)
- JAX-RS + GWT = 客户端的 RestyGWT
- 服务器端的 JPA
- GWT 客户端和服务器端的 JAXB over JAX-RS。
- 服务器端的 Jackson JSON 处理器。
REST-RPC 令人信服的原因是
- 您可以假装将客户端-服务器对话编写为 GWT-RPC。服务接口和回调态度是一样的。
- 客户端和服务器之间的数据交换是 JSON 格式的。
- 这意味着您可以在成功设置应用程序后使用浏览器而不是 GWT 客户端与服务器进行对话。或 jQuery。或 PHP,或 Python 作为服务器。
- 无需自己处理 JSON 或 XML 编码/解码 - 只在 POJO 中处理。
- 您可以使用浏览器独立于 GWT 客户端来调试您的 Web 服务。
REST 的态度是(除了状态独立的请求)是称为 Web API 的概念。可能是一个类似于 javadoc 的 API,但以 JSON 或 XML 的形式表示。这个 API 的美妙之处在于 - 您不必生成文档。像 javadoc 一样,您可以通过服务接口运行 Enunciate。
您可以在以下(3 部分以上)博客文章中关注我的讨论:http: //h2g2java.blessedgeek.com/2012/07/gwt-with-jax-rs-and-jpa-part-3.html。
您正在寻找 GWT AutoBean:http ://code.google.com/p/google-web-toolkit/wiki/AutoBean
使用 AutoBeans,您只需定义 JSON 的结构,然后 GWT 编译器处理其余部分。