2010-02-13 14 views
5

Busqué en google cierta información sobre servicios web, parece una aplicación de nivel empresarial. Descubrí que el diseño RESTful es una idea genial sobre esto. Encuentro que Apache CXF parece genial, admite diseño REST y Java. ¿Es una buena opción para los principiantes comenzar a escribir una aplicación usando Apache CXF? o cualquier otro marco se sugiere?Sugerencias sobre RESTful Java Web Services Framework ...

Respuesta

4

Recomiendo utilizar JAX-RS porque en mi humilde opinión es el marco más neutral en términos de decirle cómo se debe hacer el REST. No he usado CXF, solo Jersey. Es una implementación muy sólida y viene con un buen conector del lado del cliente, también (el lado del cliente no es parte de JAX-RS todavía).

Ser neutral en lo que respecta a 'cómo hacer REST' es importante porque todavía no existe una 'mejor' manera reconocida de abordar ciertos aspectos (por ejemplo, diseño de hipermedia).

Enhorabuena por seguir el camino REST - no te arrepentirás.

Ene

2

La implementación mucho más simple para un principiante sería el soporte de REST de la primavera 3.0. Spring MVC 3.0 tiene soporte REST y es mucho más simple en comparación con Apache CXF.

+0

@spa Web services with Roo? –

+0

Guau ... mejor lea la pregunta la próxima vez ... se perdió la palabra servicio web. Pensé en un estilo de arquitectura RESTful. – spa

+0

@spa ¿Puede explicar lo que está diciendo o un recurso que lo explica mejor? –

1

Restlet en otro framework web REST para Java: http://www.restlet.org/

+0

Parece no tan famoso como el Apache CXF y Spring, ¿hay alguna característica especial en Restlet? – DNB5brims

+0

Puede tener una lista de las características proporcionadas por Restlet: http://www.restlet.org/about/features Apache CXF y Spring MVC son proyectos muy buenos. Pero, a diferencia de Restlet, no están enfocados en aplicaciones REST. – Desintegr

+0

Restlet llegó antes que JAX-RS, así que tiene su propia arquitectura. Vi la función que agregaron la integración de JAX-RS 1.0. – TJR

8

yo iría a Jersey, el IR de JAX-RS (JSR 311), la JAX-RS (es decir, un estándar).

1

que descansar lo empecé con RESTEasy y conseguir que en 30 minutos. Puedes usarlo como lib propia en tu contenedor de servlets favorito sin todo esto de JBoss.

1

Deberías probar PlayFramework. Basta con echar un botín en un archivo de ruta muestra y usted sabrá lo fácil que es utilizar el juego para poner en práctica aplicación web REST:

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

y los correspondientes métodos de controlador:

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

Hay algunas utilidades permiten usted para interactuar con otros servicios 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();