API

URI

Der Aufbau der URI ist wie folgt:
http://drivl.org/$controller/
Eine Liste mit Controllern findet sich am Ende diese Dokumentes. Parameter könnne auf zwei verschiedene Arten übergeben werden.

Möglichkeit 1

Einfach per ?param=value

Möglichkeit 2

An die URI "/param/value" anhängen

Beispiele

Aufruf des API Controllers mit Abfrage der Methoden der Klasse "posts":
http://drivl.org/apiDoc/class/posts
oder: clicky
Beide Aufrufe sind gültig und führen zum selben Ergebnis

Ausnahme

Der "posts" Controller zieht sich den ersten String als Parameter "Benutzername":
http://drivl.org/posts/username
Hier funktioniert "/user/username" also nicht, es können aber weitere Parameter in diesem Stiel angehängt werden:
http://drivl.org/posts/username/format/json

Response-Format

Folgende Response-Formate werden unterstüzt. Das Response-Format kann wie oben beschrieben als Parameter zur Seite angegeben werden. Allerdings gibt es hier eine Besonderheit. Das Format kann zusätzlich auch per Dateiendung angegeben werden. Bsp.: http://server/apiDoc.json

Format Parameter-Angabe Beschreibung
XHTML html HTML-Seite, komplett mit Layout
XHTML phtml HTML-Seite, ohne Layout
JSON json JSON-String der angeforderten Daten
RSS 2.0 rss RSS Feed
Atom 0.3 atom Atom Feed
Die Response-Formate "html", "phtml" und "json" sind immer verfügbar. Die beiden anderen nicht immer, einfach ausprobieren.

Request-Format

Beim POST oder PUT auf die API können die Daten in einem der folgenden Formate übergeben werdeni

Format Content-Type Beschreibung
Form-Post application/x-www-form-urlencoded Normaler HTTP-Post, wie von einem Formular
JSON */json JSON-String
XML */xml TBD
Zum Erkennen, in welchem Format die Daten kommen, muss der "Content-Type"-Header entsprechend ausgefüllt werden. Im Fall "json" und "xml" wird im Moment nur auf die Zeichenkette "json" bzw. "xml" geprüft, sobald also irgendwo im Content-Type diese Zeichenkette zu finden ist, wird versucht, die Daten mit dem entsprechenden Handler zu lesen.
Der Handler für XML ist noch nicht implementiert.

Controller

black image