Problem
Wie im Blogpost Best Practices für das Entwerfen einer pragmatischen RESTful-API empfohlen , möchte ich fields
einer auf Django Rest Framework basierenden API einen Abfrageparameter hinzufügen , mit dem der Benutzer nur eine Teilmenge von Feldern pro Ressource auswählen kann.
Beispiel
Serializer:
class IdentitySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.Identity
fields = ('id', 'url', 'type', 'data')
Eine reguläre Abfrage würde alle Felder zurückgeben.
GET /identities/
[
{
"id": 1,
"url": "http://localhost:8000/api/identities/1/",
"type": 5,
"data": "John Doe"
},
...
]
Eine Abfrage mit dem fields
Parameter sollte nur eine Teilmenge der Felder zurückgeben:
GET /identities/?fields=id,data
[
{
"id": 1,
"data": "John Doe"
},
...
]
Eine Abfrage mit ungültigen Feldern sollte entweder die ungültigen Felder ignorieren oder einen Clientfehler auslösen.
Tor
Ist das irgendwie sofort möglich? Wenn nicht, wie lässt sich dies am einfachsten umsetzen? Gibt es ein Paket von Drittanbietern, das dies bereits tut?