Fragen zu REST

Airwolf89

Aktives Mitglied
Hallo Leute,

ich bin gerade dabei mich in die REST-Thematik einzuarbeiten, allerdings habe ich da noch ein paar Verständnisprobleme.

Es ist ja so, dass bei einer RESTful Application jede Ressource eine URI bekommt. Doch wie wird das realisiert? Also wie kommt die Anwendung von einer URI zu ihrer Ressource und deren Repräsentation? Die URIs die angegeben werden sind ja keine physikalischen Adressen sondern logische, hab ich gelesen. D.h. dann doch dass es irgendeinen Mechanismus geben muss welcher aus den URIs eine Adresse macht, mit der man dann auf die Repräsentation der Ressource zugreifen kann.
Ich dachte mir erst, dass man dann quasi Objekte erstellt und dann den Identifier aus der URI nimmt und somit auf das Objekt zugreifen kann. Dann habe ich allerdings gelesen dass weder Client noch Server die URIs direkt verstehen müssen. (siehe hier)

Also, wie geht sowas jetzt und wie kann man das implementieren?

Und wie ist das jetzt mit den *.WSDL Dateien? Werden die für eine REST-Anwendung gebraucht oder sind die eher für SOAP-Anwendungen gedacht? Wenn sie bei REST benötigt werden, wie werden die verwendet? Sind das nur formale beschreibungen eines Webservices damit andere ihn verstehen oder werden die in irgeneiner Weise verwendet?

Vielen Dank im voraus.
 

musiKk

Top Contributor
Also, wie geht sowas jetzt und wie kann man das implementieren?

Da gibt es verschiedene Möglichkeiten. Es gibt Unterstützung für REST in Spring oder JAX-RS. Wenn Du Dir das ansiehst, sollten sich ja eigentlich auch die obigen Fragen klären.

Und wie ist das jetzt mit den *.WSDL Dateien? Werden die für eine REST-Anwendung gebraucht oder sind die eher für SOAP-Anwendungen gedacht? Wenn sie bei REST benötigt werden, wie werden die verwendet? Sind das nur formale beschreibungen eines Webservices damit andere ihn verstehen oder werden die in irgeneiner Weise verwendet?

WSDL-Dateien sind für SOAP relevant. Für REST gibt es meines Wissens keine formale Beschreibung.
 

Airwolf89

Aktives Mitglied
Hi,

erstmal danke für die Antwort.

Das mit dem WSDL ist gut, dann bin ich beruhigt.

Was die Implementierung angeht: Klar könnte ich mir jede Menge Frameworks runterladen und das damit machen. Bei mir geht es aber eher darum das Konzept zu verstehen. Deshalb wollte ich erstmal eine Implementierung ohne Frameworks hinkriegen.

Ich habe jetzt mal was gebastelt. Da es in PHP ist lass ich den Code mal weg.

Also. Ich habe da eine index.php Datei, halt die Startseite, da kann ich Werte eingeben. Diese Werte werden an eine andere PHP Klasse weitergegeben. Diese Klasse schickt nen HTTP Request an den Server. Ich gebe diese URI mit: localhost/WebServiceTest2/service.php?id=1000&local=Kunden

Auf dem Server, also der service.php, werden diese beiden Werte genutzt und dann entsprechend der Variable local in einem Order geguckt (in meinem beispiel Kunden, Artikel oder Bestellungen) und dort je eine XML Datei ausgelesen welche die entsprechenden daten aller Kunden, Artikel oder Bestellungen enthalten. Nun wird die id herangezogen und der entsprechende Datensatz mit der id zurückgegeben. Der Body der Response wird nun ausgegeben.

Entspricht das in etwa dem REST Konzept? Hab ich das so richtig verstanden? Ich könnte auch, wenn das in Ordnung wäre den Quelltext posten, wäre aber halt PHP.

Danke.
 

musiKk

Top Contributor
Da es Dir nur ums Konzept geht, ist Quelltext wahrscheinlich nicht ganz so wichtig.

Eine Ressource ist ja mehr ein abstraktes Konzept. In Deinem Fall z. B. Kunden etc. Ob die Daten dazu aus XML-Dateien kommen oder von wo anders, ist ziemlich egal. Meistens wird man jedoch sicher eine Datenbank verwenden. In welcher Form das dann präsentiert wird, ist auch egal (also vom Anwendungsfall abhängig). Sehr gebräuchlich sind aber XML und JSON.

Unter diesem Gesichtspunkt ist das, was Du da beschrieben hast sicher als REST zu verstehen. Die Umsetzung sieht meist ein wenig anders aus, URLs sind meist in der Form [c]localhost/WebServiceTest2/service/id/1000/local/Kunden[/c]. Da REST aber kein Protokoll, sondern eine Architektur ist, gibt es diesbezüglich keine Vorschriften.
 

Ähnliche Java Themen

Neue Themen


Oben