关于RESTful Java Web服务框架的建议......

时间:2010-02-13 15:50:09

标签: java apache frameworks rest

我搜索了一些有关Web服务的信息,它看起来像是一个企业级应用程序。我发现RESTful设计对此非常酷。我发现Apache CXF看起来很酷,它支持RESTful设计和Java。对于初学者来说,使用Apache CXF开始编写应用程序是一个不错的选择?或建议任何其他框架?

6 个答案:

答案 0 :(得分:8)

我会去JerseyJAX-RS的RI(JSR 311),RESTful Web服务的Java API(即标准)。

答案 1 :(得分:4)

我建议使用JAX-RS,因为在告诉你应该如何完成REST方面,它是最中立的框架。我没有使用过CXF,只有泽西岛。这是一个非常可靠的实现,并且还带有一个良好的客户端连接器(客户端不是JAX-RS的一部分)。

对于“如何做REST”保持中立是很重要的,因为还没有一种公认的“最佳”方式来处理某些方面(例如超媒体的设计)。

恭喜您采用REST方式 - 您不会后悔。

答案 2 :(得分:2)

初学者的简单实现将是spring 3.0 REST支持。 Spring MVC 3.0具有REST支持,与Apache CXF相比非常简单。

答案 3 :(得分:1)

另一个用于Java的RESTful Web框架中的

Restlet http://www.restlet.org/

答案 4 :(得分:1)

我使用RESTEasy启动REST,并在30分钟内启动它。你可以在你最喜欢的servlet容器中将它作为独立的lib使用,而不需要所有这些JBoss的东西。

答案 5 :(得分:1)

你应该尝试PlayFramework。只需在示例路径文件中获取战利品,您就会知道使用Play实现RESTFul Web应用程序是多么容易:

# ====== Order service =========================
GET /orders Orders.list
GET /orders/{<[0-9]+>id} Orders.show
PUT /orders/{<[0-9]+>id} Order.saveUpdate
POST /orders Orders.saveNew
# ==============================================

相应的控制器方法:

public class Orders extends Controller {
   public static void list() {
      List<Order> orders = Order.all();
      render(orders);
   }
   public static void show(long id) {
      Order order = Order.findById(id);
      notFoundIfNull(order);
      render(order);
   }
   public static void saveUpdate(long id, Order update) {
      Order order = Order.findById(id);
      notFoundIfNull(order);
      order.update(update);
      show(id);
   }
   public static void saveNew(Order order) {
      order.save();
      show(order.getId());
   }
}

有一些实用程序可以让您与其他Web服务进行交互:

String url = "https://ajax.googleapis.com/ajax/services/search/web";
Map<String, Object> params = new HashMap<String, Object>();
params.put("v", "1.0");
params.put("q", searchStr);
params.put("key", Play.configuration.get("app.google.key"));
params.put("userip", myIpAddr);
HttpResponse resp = WS.url(url).params(params).get();
return resp.getString();