von Tobias Günther,
online veröffentlicht am 06.06.2007
Twittern 0 Teilen 0

Teil 2: Die Praxis der REST-Architektur in Ruby On Rails: REST in Rails

Aus dem
t3n Magazin Nr. 8

Rails 1.2 bringt als große Neuerung die Unterstützung der REST-Architektur mit sich. Nachdem sich Teil 1 (siehe T3N Magazin Nr. 7) um die theoretischen Hintergründe von REST drehte, geht es nun ans Eingemachte: Eine kleine Artikel-Verwaltung soll RESTful umgesetzt werden.

Die REST-basierte Entwicklung in bietet nur wenige Unterschiede zur „klassischen“, altbekannten Vorgehensweise. Neu sind vor allem folgende Punkte:

  • respond_to im Controller ermöglicht es, mit wenigen Handgriffen unterschiedliche Response-Formate auszugeben.
  • Das Routing erhält mit der Methode „resources“ eine REST-Implementierung.
  • Redirects im Controller und Links in den Views verfügen über neue Methoden und Helper.

Über diese größeren Neuerungen hinaus bleibt uns aber größerer Lernaufwand erspart – die meisten anderen Bereiche werden durch REST nicht berührt. Daher werden in diesem Artikel auch nur die entscheidenden, neuen Bereiche angesprochen.

Auf die Plätze... fertig... coden!

Wie bei jedem Rails-Projekt sind auch hier die ersten Schritte das Generieren des Anwendungs-Codes über „ projektname“ und das Anlegen der entsprechenden Datenbank(en).

Interessant wird es, wenn wir nun den neuen Script-Generator „scaffold_resource“ einsetzen, um uns ein Grundgerüst bestehend aus Model, Controller und allem was dazu gehört erzeugen zu lassen. Der Generator erwartet als ersten Parameter den Namen des Models. Aus dem Namen des Models generiert Rails automatisch dann auch den entsprechenden Controller: Der Plural des Models wird hierfür als Name verwendet.

Weitere Parameter erlauben es uns, in der zugehörigen Datenbank-Migration gleich bestimmte Felder anlegen zu lassen und in der View ebenfalls diese Felder zu nutzen. In unserem Beispiel legen wir das Model „article“ mitsamt den Tabellenfeldern title, category, teaser, keywords, date und content sowie den Controller „articles_controller“ an. Dazu genügt folgender Befehl:

Seite:  1 2 3 4 5 6 7

Das interessiert dich bestimmt auch