2009-03-31 7 views
6

Ich möchte wissen, wie ich REST in meiner Webanwendung implementieren konnte. Ich möchte eine Webanwendung erstellen, die auf diesem Dienst basiert, aber ich weiß nicht, wie ich es machen soll. Jetzt benutze ich J2EE und Tomcat. Welche Dinge sollten für diese Technologien in Betracht gezogen werden?Wie implementiert man REST in einer Webanwendung?

EDIT: Sorry, ich meine RESTful Service.

Antwort

12

REST ist keine spezifische Schnittstelle oder Technologie, sondern ein Stil. Das beste Beispiel ist das Web selbst - Ihr Browser sendet eine HTTP-Anfrage an einen Webserver, der mit einer Webseite antwortet.

Representational State Transfer in diesem Kontext: Die Darstellung ist die Webseite, der Zustand ist die darin enthaltene Information. Wir könnten die Darstellung ändern, indem wir anstelle von HTML auf XML umstellen, aber die Information wäre die gleiche.

In einem RESTful-Service verwenden Sie diesen Stil, um Datenobjekte hin und her zu senden - der Status wird vom Server an Sie übertragen und Sie senden dann einen neuen Status zurück.

In gewisser Weise wird Tomcat bereits REST für Sie tun, wenn Sie Ihre Server-Seiten als Ressourcen setzen: http://carsales.com/cars/porsche2149 könnte die Ressource für Ihr Auto sein, zu der Sie HTTP POST oder PUT verwenden könnten, um die Details zu ändern es. Die Kennzeichen von REST verwenden URIs, um Ressourcen wie oben zu bezeichnen, wobei JSON oder XML als Austauschmedium verwendet wird (obwohl AHAH und andere Formate verwendet werden), und streiten darüber, wie Auflistungen DELETE werden sollen.

Zuerst, erarbeiten Sie, was Ihre Ressourcen sein werden, und organisieren Sie Ihr URI-System, um es anzupassen (URL-Rewriting usw. verwenden). Bestimmen Sie dann die Repräsentation (en), die Sie verwenden möchten. Schreiben Sie schließlich das Backend, um mit der Übergabe von Zustandsdarstellungen umgehen zu können, und aktualisieren Sie die Datenbank.

+0

Dank Phil H, Ihre Antwort ist es wirklich gut und hilfreich –

+0

+1 für das Beispiel mit porsche. Obwohl es jetzt weg ist, aber immer noch. – zmilojko

0

Dies ist ein bisschen wie ein Drive-by-Antwort, aber wenn Sie einen Rahmen/api wollen hier helfen gibt zwei Möglichkeiten:

Restlet

CXF's jax-rs

1

Ich habe keine Erfahrung mit CXF's jax-rs aber Restlet funktioniert gut für mich. Es ermöglicht RESTful Services und Clients auf einfache Weise zu implementieren. Es hat mir sehr dabei geholfen, gegen die REST-Service-Schnittstelle von DekiWiki zu programmieren. Es gibt ein O'Reilly-Buch über "RESTful Web Service", das eine gute Einführung bietet. Es hat auch einen kurzen Abschnitt über Restlet.

0

Wir verwenden auch Restlet mit JAX-RS.

Wenn Sie JAX-RS (Java-API für RESTful Web Services) verwenden möchten, dann ist dieses document möglicherweise nützlich (obwohl es ein Referenzhandbuch für die Entwicklung in JBoss RESTEasy ist).

Ich empfehle auch die REST test client

0

RESTful Web Services ein Buch, das Ihnen helfen könnte. Es beschreibt die Motivation hinter RESTful Web Services und gibt Anweisungen, wie Sie Ihren Service gestalten sollten. Sie könnten dann die Implementierung entweder mit einem Framework oder einfach mit Servlets durchführen.

Als Alternative zu den bereits erwähnten Implementierungsmethoden möchte ich Spring MVC hinzufügen.Es ist möglich, RESTful Anwendungen already zu erstellen, aber mehr direkte Unterstützung wird hinzugefügt in Spring 3.0

Verwandte Themen