Problème
Comme recommandé dans l'article de blog Best Practices for Designing a Pragmatic RESTful API , je voudrais ajouter un fields
paramètre de requête à une API basée sur Django Rest Framework qui permet à l'utilisateur de sélectionner uniquement un sous-ensemble de champs par ressource.
Exemple
Sérialiseur:
class IdentitySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.Identity
fields = ('id', 'url', 'type', 'data')
Une requête régulière renverrait tous les champs.
GET /identities/
[
{
"id": 1,
"url": "http://localhost:8000/api/identities/1/",
"type": 5,
"data": "John Doe"
},
...
]
Une requête avec le fields
paramètre ne doit renvoyer qu'un sous-ensemble des champs:
GET /identities/?fields=id,data
[
{
"id": 1,
"data": "John Doe"
},
...
]
Une requête avec des champs non valides doit ignorer les champs non valides ou générer une erreur client.
Objectif
Est-ce possible d'une manière ou d'une autre? Sinon, quelle est la manière la plus simple de mettre en œuvre cela? Existe-t-il déjà un package tiers qui le fait déjà?