2010-02-13 13 views
5

Ich googelte einige Informationen über Web-Services, es scheint wie eine Anwendung auf Unternehmensebene. Ich fand, dass RESTful Design ist eine sehr coole Idee zu diesem Thema. Ich finde, dass Apache CXF cool aussieht, es unterstützt RESTful Design und Java. Es ist eine gute Wahl für Anfänger, um eine Anwendung mit Apache CXF zu schreiben? oder irgendein anderer Rahmen wird vorgeschlagen?Vorschläge auf RESTful Java Web Services Framework ...

Antwort

4

Ich empfehle, JAX-RS zu verwenden, denn IMHO ist es der neutralste Rahmen in Bezug darauf, wie man REST machen sollte. Ich habe CXF nicht benutzt, nur Jersey. Es ist eine sehr solide Implementierung und kommt mit einem guten Client-Side-Connector (Client-Seite noch nicht Teil von JAX-RS noch).

Neutralität in Bezug auf "wie man REST macht" ist wichtig, weil es noch keine anerkannte "beste" Möglichkeit gibt, sich bestimmten Aspekten (z. B. dem Entwurf von Hypermedien) zu nähern.

Herzlichen Glückwunsch zum REST-Weg - Sie werden es nicht bereuen.

Jan

2

Die viel einfachere Implementierung für einen Anfänger wäre Frühling 3.0 REST-Unterstützung. Spring MVC 3.0 hat REST-Unterstützung und ist im Vergleich zu Apache CXF sehr viel einfacher.

+0

@spa Webdienste mit Roo? –

+0

Wow ... besser lesen Sie die Frage beim nächsten Mal ... verpasste das Wort Web-Service. Dachte über einen RESTful Architektur-Stil nach. – spa

+0

@spa Können Sie bitte näher ausführen, was Sie sagen oder eine Ressource, die besser über sie erklärt? –

1

Restlet in einem anderen RESTful Web-Framework für Java: http://www.restlet.org/

+0

Es scheint nicht so berühmt wie die Apache CXF und Spring, gibt es irgendwelche Besonderheiten in Restlet? – DNB5brims

+0

Sie können eine Liste der von Restlet bereitgestellten Funktionen haben: http://www.restlet.org/about/features Apache CXF und Spring MVC sind sehr gute Projekte. Im Gegensatz zu Restlet konzentrieren sie sich jedoch nicht auf REST-Anwendungen. – Desintegr

+0

Restlet kam vor JAX-RS, also hat es seine eigene Architektur. Ich sah das Feature, dass sie JAX-RS 1.0-Integration hinzugefügt. – TJR

8

ich für Jersey gehen würde, die RI von JAX-RS (JSR 311), der Java-API für RESTful Web Service (das heißt ein Standard).

1

ich REST mit RESTEasy beginnen und es in 30 Minuten aufzustehen. Sie können es als Standalone-Lib in Ihrem Lieblings-Servlet-Container ohne all diese JBoss-Sachen verwenden.

1

Sie sollten PlayFramework ausprobieren. Nehmen Sie einfach eine Beute in einer Probe Routendatei und Sie werden wissen, wie einfach es spielen zu verwenden ist RESTful Web-App zu implementieren:

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

und entsprechende Controller-Methoden:

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

Es gibt einige Dienstprogramme ermöglichen Sie mit anderen Web Services interagieren:

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