[python-users] restful urls

Daniel Hepper daniel.hepper at gmail.com
Do Feb 10 12:23:24 CET 2011


Hi,


Als Auslöser der Debatte möchte ich die Gelegenheit nutzen meinen
Standpunkt etwas genauer zu erläutern. REST ist ja kein Standard,
sondern ein Architekturstil und REST ist nicht HTTP. Insofern gibt es
kein Richtig oder Falsch, sondern jede Menge Interpretationsspielraum.

Kernkonzepte von REST, wie in der Dissertation von Roy Fielding [1]
beschrieben, sind Ressourcen [2] und Repräsentationen von Ressourcen
[3]:

"Any information that can be named can be a resource: a document or
image, a temporal service (e.g. "today's weather in Los Angeles"), a
collection of other resources, a non-virtual object (e.g. a person),
and so on. In other words, any concept that might be the target of an
author's hypertext reference must fit within the definition of a
resource."

"REST components perform actions on a resource by using a
representation to capture the current or intended state of that
resource and transferring that representation between components. A
representation is a sequence of bytes, plus representation metadata to
describe those bytes. Other commonly used but less precise names for a
representation include: document, file, and HTTP message entity,
instance, or variant."

Nach meinem Verständnis gibt es zwei Möglichkeiten ein Wiki-Dokument
zu betrachten:

1. Ressource mit Repräsentation
Das Wiki-Dokument mit allem was dazugehört (z.B. Metadaten) die
Ressource. Wenn ich mir nur die Metadaten anschauen will, dann ist das
eine Repräsentation der Resource. Eigentlich sollten URI in REST
ausschließlich Ressourcen bezeichnen, die gewünschte Repräsentation
sollte auf anderem Wege übermittelt werden. Bei einer REST-API könnte
der Accept-Header verwendet werden um zwischen einer XML- und
JSON-Repräsentation der Ressourcen zu wählen.

Das halte ich aber für MoinMoin für nicht praktikabel. Eure Lösung die
Repräsentation in die URL aufzunehmen ist deshalb ok und durchaus
üblich. Beispielsweise bei der Twitter-API haben URLs die Form
http://api.twitter.com/version/resource.format, wobei format durch
json, xml, atom ersetzt wird.

2. Collection von Ressourcen
Das Wiki-Dokument ist eine Sammlung mehrerer Ressourcen (Inhalt, Metadaten...).

Der Ressource-Respräsentation-Ansatz passt meiner Meinung nach besser,
doch unabhängig für welche der beiden Ansichten man sich entscheidet
empfinde ich die Metadaten als Teil des Dokuments und nicht umgekehrt.
Meines Wissens ist zwar nicht vorgegeben dass URIs hierarchisch
aufgebaut sein müssen, insofern wäre euer Ansatz (/+Meta/Home)
durchaus denkbar. Wenn man das aber in einer logischen URL-Hierarchie
abbilden will, dann landet man bei /Home/+Meta.

Viele Grüße,
Daniel

[1] http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
[2] http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_2_1_1
[3] http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_2_1_2

2011/2/10 Reimar Bauer <rb.proj at googlemail.com>:
> Hi
>
> gestern kam ja in der Diskussion die Philosophie von restful urls auf.
>
> Obwohl mir als Tastenkind sofort einleuchtet , warum
> /<path>/+sonstwas einfacher zu manipulieren ist als
> /+sonstwas/<path>
> wäre ich mal an weiteren Beispielen oder Beschreibungen interessiert.
>
> Gruß
> Reimar
> ________________________________________
> Diese Mail erhalten Sie ueber die Mailingliste python-users der Universitaet zu Koeln
> Nachrichten an: python-users at uni-koeln.de
> Abonnement und Benutzereinstellungen: https://lists.uni-koeln.de/mailman/listinfo/python-users
> Listenarchiv: https://lists.uni-koeln.de/pipermail/python-users/
>
> pyCologne Homepage: http://pycologne.de/
>



Mehr Informationen über die Mailingliste python-users