22.04.2010¶
Nachdem ich nochmal über [url http://en.wikipedia.org/wiki/Representational_State_Transfer REST] gelesen habe, denke ich, dass ich zwei Serien von URLs anbieten muss. Erstens ein Baum nach den “klassischen” RESTful-Prinzipien:
Collection URIs:
/api/contacts/Persons.csv
/api/contacts/Persons.json
/api/contacts/Persons.pdf
GET-Requests auf diese URIs lesen Parameter wie mt, mk, sort, offset, limit usw.
Element URIs:
/api/contacts/Persons/123.pdf
/api/contacts/Persons/123.html
/api/contacts/Persons/123.json
(Wobei 123 ein primary key ist). Hier sind als Parameter der Name des zu verwendenden Templates denkbar, oder spezifische Optionen der Templates.
Und parallel dazu einen Baum, der ExtJS-Code liefert und mit RESTful eigentlich nicht mehr viel zu tun hat:
GET /ui/contacts/Persons/grid
GET /ui/contacts/Persons/detail
GET /ui/contacts/Persons/projects
...
Diese URIs lesen momentan überhaupt keine Parameter.
Das ist nur für Clients, die das von Lino vorgeschlagene user interface nutzen wollen und geht somit über eine klassische REST-Anwendung hinaus.
Dieser Baum kennt auch eine Art von POST zum Speichern einer windows configuration:
POST /ui/contacts/Persons/grid
...
16 Uhr: In Revision [http://code.google.com/p/lino/source/detail?r=10f4f269ffe99217ed96dd3805789bbab2dae620 10f4f269ff] sind diese neuen URI-Regeln aktiv. Die Grundfunktionen (Fenster öffnen, Datenenanbindung, Konfig speichern) sind wieder da, diesmal auch der PDF-Download. Das Wichtigste, das noch fehlt, sind Submit, Insert, und Delete.