DevHouseFriday – Die perfekte REST-API
Gestern hat natürlich unser wöchentlicher DevHouseFriday Talk stattgefunden. Diesesmal wurde in der Runde das Thema diskutiert, wie eine perfekte API aussehen kann. Die eine Antwort darauf wurde auch nicht erwartet, aber anhand einiger Beispiele im Netz kamen viele Impulse aus der Runde die das Entwickeln einer “sauberen” API bestimmt helfen können.:
- Schicke nicht “so viel wie möglich” mit einer Anfrage mit. Mach das immer abhängig von deinem Anwendungskontext – was ist relevant, was “könnte” relevant sein. Wenn du dir nicht sicher bist – lass lieber was weg. Das ist entscheidend während der Evolution deiner API – wenn viele unabhängige Clients deinen Service benutzen, kann das entfernen von Attributen die mit einem Response zurückgegeben werden, sehr problematisch werden. Aber berücksichtige das – eine API lebt.
- Implementiere selber einen Client während der Gestaltung deiner API – probiere sie direkt aus.
- Versioniere deine API. Damit kannst Du sie (mit Vorsicht) ausbauen oder Attribute wieder entnehmen, indem Du die Änderungen Versionierst. Bei der Versionierung gibt es drei Möglichkeiten: entweder du kennzeichnest die Version in der URI – über die URL (z.B. Amazon oder Github) oder einen Parameter oder du setzt deinen eigenen content-type für den Request. Bei der Veränderung der URL solltest man sich im klaren sein, dass zwei unterschiedliche Identifier (../v1/.. und ../v2/..) ein und die selber Ressource beschreiben.
Das waren meiner Meinung nach die drei wichtigsten Themen die wir gestern in der Runde angesprochen haben. Wir werden die Erkentnisse für die Entwicklung unserer API für Channelthing bestimmt mitnehmen und sind gespannt auf unseren ersten iPhone-Prototypen der sie direkt ausprobieren kann (danke an @flxmllr).
Freu mich schon aufs nächste DevHouseFriday!
Btw.: stay in touch via unserem wiki und unserer facebook-guppe
Comments
2 Responses to “DevHouseFriday – Die perfekte REST-API”

Hier noch der Link zu dem von mir angesprochenen Blogeintrag:
http://barelyenough.org/blog/2008/05/versioning-rest-web-services/
Und das habe ich gerade auch noch gefunden:
http://binarymentalist.com/post/98500643/versioning-restful-webservices
Hey, nice… das sind zwei echt interessante links. danke!
Er scheint auch der Meinung zu sein, dass man über Versionierung nachdenken sollte.