Предложения по RESTful Java Web Services Framework ... - PullRequest
5 голосов
/ 13 февраля 2010

Я погуглил некоторую информацию о веб-сервисах, похоже на приложение уровня предприятия. Я обнаружил, что дизайн RESTful - это очень крутая идея. Я считаю, что Apache CXF выглядит круто, он поддерживает дизайн RESTful и Java. Это хороший выбор для начинающего, чтобы начать писать приложение, используя Apache CXF? или какие-то другие рамки предлагаются?

Ответы [ 6 ]

8 голосов
/ 13 февраля 2010

Я бы выбрал Джерси , RI JAX-RS (JSR 311), Java API для веб-служб RESTful (т.е. стандарт).

4 голосов
/ 13 февраля 2010

Я рекомендую использовать JAX-RS, потому что ИМХО это самая нейтральная структура с точки зрения того, чтобы рассказать вам, как должен выполняться REST. Я не использовал CXF, только Джерси. Это очень солидная реализация и поставляется с хорошим соединителем на стороне клиента (сторона клиента еще не является частью JAX-RS).

Быть нейтральным в отношении того, «как сделать REST», важно, потому что пока не существует общепризнанного «лучшего» подхода к определенным аспектам (например, проектирование гипермедиа).

Поздравляю с тем, чтобы идти по пути ОТДЫХА - вы не пожалеете об этом.

Jan

2 голосов
/ 13 февраля 2010

Гораздо более простой реализацией для начинающих будет поддержка REST весной 3.0. Spring MVC 3.0 имеет поддержку REST и намного проще по сравнению с Apache CXF.

1 голос
/ 04 июня 2011

Вы должны попробовать PlayFramework. Просто возьмите лут с примера файла маршрута, и вы поймете, насколько просто использовать play для реализации веб-приложения RESTFul:

# ====== 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());
   }
}

Существуют некоторые утилиты, позволяющие вам взаимодействовать с другими веб-сервисами:

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();
1 голос
/ 13 февраля 2010

Я начинаю REST с RESTEasy и встаю через 30 минут. Вы можете использовать его как автономную библиотеку в вашем любимом контейнере сервлета без всего этого JBoss.

1 голос
/ 13 февраля 2010

Рестлет в другом веб-фреймворке RESTful для Java: http://www.restlet.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...