gwt-rpc vs rest ......真的是其中之一吗?
Posted
技术标签:
【中文标题】gwt-rpc vs rest ......真的是其中之一吗?【英文标题】:gwt-rpc vs rest... is it really one or the other? 【发布时间】:2013-07-08 19:53:12 【问题描述】:我有一个使用 GWT-RPC 调用我的 REST 服务的 GWT 客户端。为什么其中一些 cmets 将 GWT-RPC 与 REST 相提并论,就好像您必须选择一个或另一个?我在客户端上同时使用... GWT-RPC,它会访问 REST 服务。我想使用替代方案并放弃 GWT-RPC。为什么?它很慢(与我的 Flex 客户端相比,它提供了相同的服务)。我检查了 RestyGWT,但它的文档很棒(讽刺)听起来像是我需要构建我的 RestyGWT 客户端可以访问的 RestyGWT SERVICE。哎呀,不,谢谢。我的服务完成了。我真的不想碰它。所以听起来一种可能的替代方法是从我的服务生成一个客户端库,并在我的 GWT 客户端中使用它以及 RequestBuilder 来处理 JSON 到 java 对象的编码/解码(并希望获得改进的性能)。如果这不能解决问题,下一个选择是完全放弃 GWT。
【问题讨论】:
您能否提供更多关于您如何使用 GWT-RPC 与“REST”服务通信的信息? 【参考方案1】:看看Errai JAX-RS 来构建“REST”客户端(几乎)就像使用 GWT-RPC 一样容易。
【讨论】:
【参考方案2】:它基于 jquery api,但已完全用 java 重写,利用了 jquery 的简单性和 gwt 的性能。
IMO,它是使用 3party 服务(xml、json、jsonp 等)的最佳选择之一。它提供了简单的语法和许多功能,例如promises(在 1.4.0-SNAPSHOT 上可用)等。
这是一个如何使用 json rest 服务并将其映射到 java bean 的示例。如您所见,它很简单,而且性能非常好。
// Let GQuery generator wrap json to java
// there is a generator for xml services as well.
public static interface MyBean extends JsonBuilder
long getId();
String[] getTags();
String getTitle();
public void onModuleLoad()
// Configure a JSON Ajax request
Settings rq = Ajax.createSettings()
.setUrl("rest_service.js")
.setType("post") // options: get post put delete head
.setDataType("json") // send and read json data
.setData($$("foo: bar")); // Your javascriptObject
// last GQuery Ajax returns a chainable Promise which makes the code more
// readable instead of dealing with callback parameters
Ajax.ajax(rq)
.done(new Function()
public void f()
// You can inspect arguments with this
System.out.println(dumpArguments());
// Create the bean, and wrap the json object read
MyBean b = GWT.create(MyBean.class);
b.load(arguments(0));
// toString in JsonBuilder returns the json string
System.out.println(b.toString());
)
.fail(new Function()
public void f()
);
【讨论】:
以上是关于gwt-rpc vs rest ......真的是其中之一吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Swagger UI 添加到现有的 GXT 或 GWT 项目并使用当前的 GWT-RPC REST 请求?
MVC 服务器端 VS MVC 客户端和 RESTful API