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

Max Brauer max at max-brauer.de
Do Sep 11 08:53:01 CEST 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQEcBAEBAgAGBQJUEUbNAAoJEIImVIk+gxPdLNAH/RElO9ErhkWcHI/mDSjAnNGF
eud9z7kS9yofi6/ue3l7o64RULuiMg03scdcL2y9MSCJLGYbLfA6K7qGZvMd16e1
dOPuqmyzWDMocxXz42BnDMfgwfH5ueGaCmfpG37ArWKdz5afAuLAtAhUkolSwyvz
RSboITENWTXg8YmoFV0JRm79dNONw1NMQ+uUKEOz/DX8HiuMeuKzbD00ityOEPBG
qPowjNqXH3Pz8yitm9M7ZaOkaHN3COH/JPbv32exRn5lM7y9CqWTpfW+hqEjiFnm
nqKGMrBudac7z48pkijkrkrSTV+TwJCe9Yi8tX/gHMkLtSLxyjqVKU6f3uWVkTw=
=43dz
-----END PGP SIGNATURE-----


More information about the users-de mailing list