First page Back Continue Last page Overview Text

Notes:


Schauen wir uns nun an, wie ein REST-Webservice mit Java entwickelt wird. Wie Sie gleich sehen werden, ist das Vorgehen prinzipiell das gleiche wie bei SOAP. Denn auch hier nehmen wir einfach eine POJO-Klasse und erweitern sie um entsprechende Annotationen. Dabei müssen wir allerdings ein paar Besonderheiten von REST beachten, da REST sich ja viel mehr an den Gegebenheiten von HTTP und dem World Wide Web orientiert, anstatt einfach nur einen „entfernten Methodenaufruf“ auf HTTP+XML abzubilden.

Eine Besonderheit von JAX-RS ist, dass wir neben den eigentlichen Webservice-Klassen noch eine sog. Applikationsklasse benötigen, die von javax.ws.rs.core.Application erbt und über die die Basisadresse des Webservices definiert wird. (Zum Beispiel https://www.beispiel.de/rest)

Zusätzlich definieren wir eine oder mehrere Webservice-Klassen, die die „Ressourcen“ unseres Webservices darstellen. Zu jeder dieser Klassen legen wir dann fest, wie die Basis-URL erweitert werden muss, um die Klassen ansprechen zu können. (Zum Beispiel https://www.beispiel.de/rest/buch)

Innerhalb der Webservice-Klassen legen wir verschiedene Methoden an, die über den Webservice aufgerufen werden. Dabei orientieren wir uns jedoch am HTTP-Protokoll und legen für jede Methode fest, ob sie bei einer GET, PUT, POST oder DELETE-Anfrafge aufgerufen wird. Zusätzlich können wir auch hier die URL nochmal verlängern. (Zum Beispiel https://www.beispiel.de/rest/buch/details/4711, um das Buch mit der ID 4711 anzusprechen).

Hinweis zu den Methodenparametern und Rückgabewerten

JAX-RS kann die Parameter und Rückgabewerte der Methoden automatisch nach XML oder JSON umwandeln. In der Praxis funktioniert das aber nicht immer stabil. Aus diesem Grund und weil man häufig noch weitere Formate wie HTML oder PDF für den Abruf von Informationen anbieten will, zeigen die folgenden Beispiele, wie man die Werte mit wenig Aufwand einfach selbst nach JSON umwandelt. Wenn Sie den Quellcode so wie hier gezeigt übernehmen, wird er auf jeden Fall funktionieren.