Frameworks

Werbung
Kurz & Gut
Frameworks
von Gafur Zymeri
Seit 2008 kann man mit JAX-RS (Java API for
RESTful Web Services) serverseitige RESTful
Webservices einfacher entwickeln nach dem
REST Architekturstil und auf HTTP und URI
basierend. Dazu stehen Annotationen zur
Verfügung
1 Einführung Frameworks ermöglichen Wiederverwendung
und eine bessere Produktivität. Aufkommen von
Fehlern im Code werden reduziert und während
der Entwicklung wird auf das wesentliche
konzentriert. Mit dem Einsatz von Frameworks
wird eine Rahmenstruktur für die zu erstellende
Anwendung vorgegeben. Frameworks helfen
Best Practices, Architekturpattern sowie Designbzw. Entwurfspattern einzubringen.
•
mit denen man bspw. selbstdefinierte
Java-Methoden mit URIs und HTTPMethoden zu binden (@PATH, @GET)
@Path("messages/")
public class MessageListResource { … }
Der REST Architekturstil ist bereits sehr beliebt.
Es sind unzählige Frameworks entstanden, die
die Entwicklung von Webservices nach den
REST Prinzipien vereinfachen wollen. Einige
wichtige Frameworks werden hier vorgstellt.
•
oder Parameter aus dem HTTP-request
auslesen und weiterverarbeiten kann
@POST
@Produces({ "application/xml", "application/json" })
@Consumes(MediaType.APPLICATION_FORM_URLENCO
DED)
public Response create(
@FormParam("userId") Integer userId,
@FormParam("content") String content {
…
return Response.ok(…).build();
}
2 Spezifikationen Als Grundlage für die Entwicklung von RESTful
Webservices können Spezifikationen bzw. APIs
dienen.
Diese,
in
einer
bestimmten
Programmiersprache
spezifizierten,
APIs
ermöglichen und vereinfachen die Verwendung
des Architekturstils REST und somit die
Entwicklung von RESTful Webservices. Diese
können dann von Frameworks weiter genutzt
werden.
Mit JAX-RS entsteht kompakterer und
verständlicherer Code, da es anbietet bspw.
String-Inhalte aus Parametern des HTTP-request
automatisch zu Java-Objekten umzuwandeln.
Dies geschieht mit dem Java Servlet API in
aufwendigerer Weise.
Angefangen hat die Entwicklung von
Webservices (nicht jedoch nach REST
Prinzipien) mit Common Gateway Interface
(CGI) Scripts und mit ASP.net Frameworks.
Damit konnte man aber nicht gut den
Businessablauf in einem Unternehmen umsetzen.
3 Frameworks Die Frameworks, die für die Entwicklung von
RESTful Webservices eingesetzt werden,
unterscheiden sich, ob
Mit Java konnte dies gut umgesetzt werden.
•
•
•
•
2.1 Java Spezifikationen Ab 1997 entstand die Java Servlet API, mit
welcher man mit Servlets nahe an HTTP
implementieren kann. Man kann die sogenannten
Java
Applets
serverseitig
und
zudem
plattformunabhängig betreiben. Um aber HTTPrequests oder HTTP-responses zu bearbeiten und
umzusetzen entsteht meist „aufwendiger“ Code.
auf JAX-RS basieren
nicht auf JAX-RS basieren
Annotationsframeworks sind
oder für das Routing eine routes-Datei
verwenden
GET /
Application.index
GET /messages/{id} Application.showMessage
GET /messages
Application.showAllMessages
1
http://www.se.uni-hannover.de
Stand: 24.01.2012
2
Kurz & Gut: Frameworks
von Gafur Zymeri
3.1 Frameworks auf Grundlage von JAX-­‐RS Jersey: offizielles open-source Framework
[7],
RESTEasy: zertifizierte Implementierung
[6],
Restlet: konfigurierbar mit JAX-RS
[1],
Apache CXF: unterstützt
JAX-RS [9].
3.2 Frameworks nicht auf Grundlage von JAX-­‐RS •
•
•
•
•
•
Ruby on Rails [2]
Restfulie [10]
Play! [3]
Sinatra [4]
Django
Express [5]
4 Fazit Annotationen machen den Code übersichtlicher
und kompakter. Der Einsatz von JAX-RS und
Jersey in Kombination mit Jackson und JAXB
bewirkt einfache Erstellung von RESTful
Webservices.
Literatur: http://www.restlet.org/
Jedoch sind auch gute Alternativen vorhanden. [1]
[2]
http://rubyonrails.org/
Die in Kapitel 3.2 vorgestellten Frameworks [3]
http://www.playframework.org/
http://www.sinatrarb.com/
haben jeweils ihre Stärken und Schwächen. [4]
[5] http://expressjs.com/index.html
Einige von ihnen sind besonders gut für das [6] http://docs.jboss.org/resteasy/docs/2.3.0.GA/userguide/html/index.htm
Erreichen bestimmter Zwecke geeignet:
l
•
•
Sinatra für Experimente und Mock-Ups
Restfulie für besondere Unterstützung
von Hypermedia nach HATEOASPrinzip.
https://wikis.oracle.com/display/Jersey/Main
http://jaxb.java.net/
[7]
[8]
[9]
[10]
http://cxf.apache.org/
http://restfulie.caelum.com.br/
2
http://www.se.uni-hannover.de
Stand: 24.01.2012
Herunterladen
Random flashcards
Medizin

5 Karten Sophia Gunkel

Laser

2 Karten anel1973

Literaturepochen

2 Karten oauth2_google_55780ed8-d9a3-433e-81ef-5cfc413e35b4

Erstellen Lernkarten