Ich starte ein neues Java-Projekt, für das eine RESTful-API erforderlich ist. Es wird eine SaaS-Geschäftsanwendung sein, die mobile Kunden bedient.
Ich habe ein Projekt mit Java EE 6 entwickelt, bin aber mit dem Ökosystem nicht sehr vertraut, da ich den größten Teil meiner Erfahrung auf der Microsoft-Plattform habe.
Was wäre eine sinnvolle Wahl für eine JAX-RS-Implementierung für ein neues Projekt wie beschrieben?
Gemessen an der Wikipedia-Liste scheinen die Hauptkonkurrenten Jersey, Apache CXF, RESTeasy und Restlet zu sein. Der auf Wikipedia zitierte Vergleich der JAX-RS-Implementierungen stammt jedoch aus dem Jahr 2008.
Meine ersten Eindrücke von ihren jeweiligen Homepages sind:
- CXF soll eine sehr umfassende Lösung sein (erinnert mich an WCF im Microsoft-Bereich), bei der ich denke, dass das Verstehen, Einrichten und Debuggen komplexer sein kann als das, was ich benötige.
- Jersey ist die Referenzimplementierung und könnte eine gute Wahl sein, aber es ist ein Erbe von Sun und ich bin nicht sicher, wie Oracle damit umgeht (Ankündigungsseite funktioniert nicht und letzte Festschreibungsmitteilung ist von vor 4 Monaten);
- RESTeasy stammt von JBoss und ist wahrscheinlich eine gute Option, obwohl ich mir nicht sicher bin, wie ich es lernen soll.
- Restlet scheint beliebt zu sein, hat aber eine Menge Geschichte. Ich bin mir nicht sicher, wie aktuell es in der Java EE 6-Welt ist oder ob es eine starke J2EE-Denkweise aufweist (wie viele XML-Konfigurationen).
Was wären die Vorzüge jeder dieser Alternativen? Was ist mit Lernkurve? Funktionsunterstützung? Tools (z. B. NetBeans- oder Eclipse-Assistenten)? Wie sieht es mit der einfachen Fehlersuche und Bereitstellung aus? Ist eines dieser Projekte aktueller als die anderen? Wie stabil sind sie?
Antworten:
Ich habe Dropwizard für eine Gesamtlösung geliebt
Anstatt sich für einen riesigen Anwendungscontainer zu entscheiden, empfiehlt Dropwizard eine schlanke Lösung, die viel schnellere Entwicklungszyklen bietet. Im Wesentlichen liefert es den Klebstoff für die folgenden bekannten Frameworks:
Die Kombination der oben genannten Aspekte in Verbindung mit einem soliden Ansatz für Funktionstests bietet eine umfassende Lösung, um Ihren Service schnell einsatzbereit zu machen.
Ja? Und die JAX-RS-Frage, die ich gestellt habe ...
Sie werden feststellen, dass sie Jersey als Referenz für die JAX-RS-Implementierung ausgewählt haben. Als RESTEasy-Typ dachte ich, das wäre ein Problem, aber es gab keine Lernkurve. Die beiden sind weitgehend austauschbar. Ich würde jedoch sagen, dass der Jersey-Client eine flüssige Oberfläche für die Erstellung von Tests anbot. Ein Beispiel wäre ...
quelle
Sie können sich diese Frage ansehen , in der einige Erfahrungen anderer Entwickler diskutiert werden.
Ich kann Jersey persönlich weiterempfehlen. Es ist sehr einfach zu bedienen und hat eine gute Anhängerschaft, da es die Referenzimplementierung ist. Dies bedeutet auch, dass es für die nächste Weile gewartet und unterstützt wird.
quelle