[OpenSlides users-de] Design für OpenSlides REST-ful api – Wie Foreign Key im JSON darstellen

Norman Jäckel mail at normanjaeckel.de
Do Sep 11 12:42:54 CEST 2014


Lieber Max,

vielen Dank für deine Antwort.

Nehmen wir an, ich will aus anderen Gründen die FKs nicht schon beim
ersten Transfer bis in die Tiefe auflösen.

Wenn ich mit möglichst wenig Code einen Client für alle OpenSlides
Seiten schreiben will oder wenn ich dem Template Designer die Arbeit
erleichtern will, muss doch der (generische) Clientcode erkennen können,
welcher Hyperlink nun aufzulösen ist und welcher nicht.

Der Designer soll schreiben:

motion.title sowie motion.supporter.name

statt

motion.title sowie resolve_it(motion.supporter).name

Oder ist es üblich, dass der Template Designer genau das überall macht?
Oder muss hart eingecoded werden, dass "supporter" ein aufzulösendes
Feld ist, "title" aber nicht, auch wenn er mit http: beginnt.
Oder soll er sich es mit einem OPTIONS request ziehen?

Viele Grüße
Norman

Am 11.09.2014 um 08:53 schrieb Max Brauer:
> Hallo Norman,
> 
> eine RESTful API... mein Spezialgebiet :-)
> 
> Am 11.09.2014 01:10, schrieb Norman Jäckel:
> 
>> Wie werden am besten Foreign Key Felder dargestellt? So, dass der
>> Client bereits aus der Darstellung weiß, dass es sich um ein 
>> aufzulösendes Feld handelt oder so, dass der Client dieses Wissen 
>> gesondert haben/bekommen muss.
> 
> 
> Es ist davon auszugehen, das der REST-Client "gar nichts" weiß, da es
> sich bei REST um keinen Standard, sondern viel mehr eine Architektur
> oder Architektur-Empfehlung handelt. Aus diesem Grund gibt es aber
> auch keine Clients die mit "jeder REST-API" umgehen können.
> 
> Wer auch immer den REST-Client schreibt, muss also wissen, wie die API
> aufgebaut ist. Mit dem Django REST framework ist das äusserst einfach
> dem User dies mitzuteilen, da es ja auch eine HTML Version
> bereitgestellt wird.
> 
> Wie du im StackOverflow Thread schon geschrieben hast, gibt es nun 3
> Möglichkeiten wie man das lösen kann:
> 
> 1. Mit dem ModelSerializer als Integer. Hierbei ist beim Entwickler,
> der den Client schreibt, wichtig das er weiß wie er diesen Integer
> "umwandelt" oder benutzt.
> 
> Der 2. Weg ist der, der wohl am ehesten den Anforderungen von Roy
> Fielding entspricht: Hyperlinks. Das ist sehr einfach mit
> HyperlinkedModelSerializer zu erreichen.
> 
> Die 3. Möglichkeit wäre einen eigenen Serializer zu schreiben, welcher
> die FK bis zu einer gewissen Tiefe aufzulösen. Auch das ist mit dem
> django REST framework einfach zu lösen.
> 
> Liebe Grüße,
> 
> 
> Max
> _______________________________________________
> OpenSlides users-de mailing list
> users-de at openslides.org
> http://mail.openslides.org/listinfo/users-de
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 819 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://mail.openslides.org/pipermail/users-de/attachments/20140911/15ee72b2/attachment.sig>


More information about the users-de mailing list