On Jun 1, 2007, at 7:06 PM, Michael Schuerig wrote:


Ich habe gerade das sehr empfehlenswerte Buch "RESTful Web Services" von
Leonard Richardson und Sam Ruby gelesen.

Ah, mein Lieblingsthema :-) ... und ein gutes Buch, siehe auch http:// www.infoq.com/articles/richardson-ruby-restful-ws

Für eine Frage, die mir unter
den Nägeln brennt, habe ich dort leider keine Antwort gefunden. Die
Frage hat auch eigentlich nicht mit einem Web*service* sondern mit
einer Web*anwendung* zu tun.


Genau genommen würde ich da gar keinen Unterschied sehen ;-)

In Rails gehört es inzwischen zum guten Ton, Anwendungen REST-gemäß zu
strukturieren. Das funktioniert allgemein für die üblichen Aktionen
auch völlig problemlos. Nicht so einfach finde ich es für
Ajax-Requests. Konkret habe ich zwei Fälle

update_ui

Manche Formulare sind dynamisch und zwar nicht nur so, dass Teile ein-
und ausgeblendet werden könnten, sondern die Auswahlmöglichkeiten in
Listen hängen davon ab, welcher Wert in einer anderen Liste ausgewählt
wurden. Die genauen Zusammenhänge sind Teil der Geschäftslogik gehören
dementsprechend in eine Model-Klasse.

Wenn der Benutzer nun eine Eingabe vornimmt, die eine Änderung des
Formulars erfordert, so wird ein Ajax-Request an den Server geschickt,
der entscheidet, was passieren soll und per RJS ein geeignetes
JavaScript an den Client zurück schickt.


Wie strukturierst Du Deine Anwendung? Funktioniert sie auch, wenn JavaScript deaktiviert ist? Wenn ja, lässt sich die RJS-Variante als eine andere Repräsentation der Ressource sehen, die Du im Nicht-JS- Fall verwendest?

poll

Der Client sendet regelmäßig einen Ajax-Request an den Server, der u.a.
die Versionsnummer des bearbeiteten Objekts enthält. Der Server prüft,
ob diese Version noch aktuell ist, wenn nicht, sendet er ein JavaScript
zurück, dass eine Nachricht anzeigt und das Formular sperrt.


Ditto - wobei ich in diesem Fall fragen würde, ob das (R)JS nicht eher in den View gehört?

Nun könnte ich möglicherweise mit ein paar Namensänderungen einfach
behaupten, dass auch diese Requests eigentlich auf Ressourcen
zugreifen. Und JavaScript ist ja neben HTML und XML auch nur eine
Repräsentation unter anderen. -- Vielleicht hat aber schon jemand einen
eleganten Weg gefunden.


JS (bzw. code on demand) ist zwar durchaus RESTful, aber in Bezug auf die Sichtbarkeit Deiner Ressourcen immer ein wenig kritisch. Kannst Du Deinen Fall noch detaillieren?

Stefan
--
Stefan Tilkov, http://www.innoq.com/blog/st/


l
Michael

--
Michael Schuerig
mailto:[EMAIL PROTECTED]
http://www.schuerig.de/michael/
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an