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 请求?

Gwt-rpc 仅使用 DAO。摆脱 DTO

Kafka 消息 VS REST 调用

MVC 服务器端 VS MVC 客户端和 RESTful API

如何使用 GWT-RPC 以外的方式访问 GWT servlet?

GWT-RPC 和不可变传输对象