Dienstag, 24. April 2007

REST - das bessere Web-Services-Modell

Der Referent dieser Session - Stefan Tilkov - nutzte einen großen Teil der Session, um mit markigen Zitaten zu zeigen, warum Web-Services schlecht sind. Da wurde mir gleich wohler. Irgendwie konnte ich mich noch nie für WSDL, UDDI, Axis etc. begeistern.
REST ist hierzu ein krasses Gegenstück. Praktisch ist es nichts anderes als HTTP oder teilt zumindest einen großen Teil der Konzepte mit HTTP. Ein REST-Service wertet die Anfrageart aus. Bei der Servlet-Programmierung wird meistens nur GET und POST verwendet und nur danach ausgewählt, ob die Parameter der Anfrage im Browser in der URL erscheinen sollen. Bei REST würden bei GET zum Beispiel die Daten zurückgeliefert werden, die unter einer bestimmten URI verfügbar sind. POST würde verwendet werden, um neue Daten unter einer URI zu speichern.
Eine Kritik an REST ist, dass es sich nur für CRUD-Operationen eignen soll, was aber nicht der Fall ist, da es von der Anwendung abhängt, wie eine Anfrage interpretiert wird. REST macht hier weder Annahmen noch Vorgaben.
Der Referent erwähnte auch JSR 311: "JAX-RS: The Java API for RESTful Web Services", das eine API zum Zugriff auf Web Services bieten soll, und Restlet, das dies bereits tut. Seiner Meinung nach sind aber beide nicht wirklich aufregend, weil die Arbeit mit REST so einfach ist, dass solche APIs nicht notwendig sind.

1 Kommentare:

Jens Schumacher hat gesagt…

In der Tat ist der Umgang mit REST recht einfach und existierende API's wie Restlet erleichtern den Prozess noch weiter.

Wenn allerdings bereits ein existierendes Web-Framwork im Einsatz ist, bietet is sich an auf dessen Erweiterungen zurueckzugreifen. Struts2 zum Beispiel bietet einen recht simplen aber hilfreichen Restful2Action Mapper[1].


[1] http://struts.apache.org/2.0.6/struts2-core/apidocs/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.html