2010-02-13 19 views
5

Ho cercato su Google alcune informazioni sui servizi Web, sembra un'applicazione di livello enterprise. Ho trovato che il progetto RESTful è un'idea molto interessante su questo. Trovo che Apache CXF sembri interessante, supporta il design RESTful e Java. È una buona scelta per i principianti iniziare a scrivere un'applicazione usando Apache CXF? o qualsiasi altro quadro è suggerito?Suggerimenti su RESTful Java Web Services Framework ...

risposta

4

Mi raccomando di usare JAX-RS perché IMHO è la struttura più neutra in termini di dirvi come REST dovrebbe essere fatto. Non ho usato CXF, solo Jersey. È un'implementazione molto solida e viene fornito con un buon connettore lato client (il lato client non fa ancora parte di JAX-RS).

Essere neutrali rispetto a "come fare REST" è importante perché non esiste ancora un modo "migliore" riconosciuto per affrontare determinati aspetti (ad esempio la progettazione di hypermedia).

Congratulazioni per il modo REST - non te ne pentirai.

gen

2

L'implementazione molto più semplice per un principiante sarebbe il supporto REST di primavera 3.0. Spring MVC 3.0 ha il supporto REST ed è molto più semplice rispetto ad Apache CXF.

+0

@spa Servizi Web con Roo? –

+0

Wow ... meglio leggere la domanda la prossima volta ... ho perso la parola web service. Pensato a uno stile di architettura RESTful. – spa

+0

@spa Puoi approfondire ciò che stai dicendo o una risorsa che spiega meglio di loro? –

1

Restlet in un altro framework web RESTful per Java: http://www.restlet.org/

+0

Non sembra così famoso come Apache CXF e Spring, ci sono delle caratteristiche speciali in Restlet? – DNB5brims

+0

È possibile avere un elenco delle funzionalità fornite da Restlet: http://www.restlet.org/about/features Apache CXF e Spring MVC sono progetti molto validi. Ma, a differenza di Restlet, non sono focalizzati sulle applicazioni REST. – Desintegr

+0

Restlet è arrivato prima di JAX-RS, quindi ha la sua architettura. Ho visto la funzionalità che hanno aggiunto l'integrazione JAX-RS 1.0. – TJR

8

mi piacerebbe andare per Jersey, la RI di JAX-RS (JSR 311), l'API Java per i servizi Web RESTful (vale a dire uno standard).

1

vengo REST iniziato con RESTEasy e farlo in 30 minuti. Puoi usarlo come lib stand-alone nel tuo contenitore di servlet preferito senza tutto questo materiale di JBoss.

1

Dovresti provare PlayFramework. Basta prendere un bottino in un file di percorso di esempio e si sa quanto sia facile da usare il gioco per implementare RESTful web app:

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

e corrispondenti metodi di controller:

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

ci sono alcune utilità consentono per interagire con altri servizi 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();