Problema
Come consigliato nel blogpost Best Practices for Designing a Pragmatic RESTful API , vorrei aggiungere un fields
parametro di query a un'API basata su Django Rest Framework che consente all'utente di selezionare solo un sottoinsieme di campi per risorsa.
Esempio
Serializzatore:
class IdentitySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.Identity
fields = ('id', 'url', 'type', 'data')
Una query regolare restituirebbe tutti i campi.
GET /identities/
[
{
"id": 1,
"url": "http://localhost:8000/api/identities/1/",
"type": 5,
"data": "John Doe"
},
...
]
Una query con il fields
parametro dovrebbe restituire solo un sottoinsieme dei campi:
GET /identities/?fields=id,data
[
{
"id": 1,
"data": "John Doe"
},
...
]
Una query con campi non validi dovrebbe ignorare i campi non validi o generare un errore del client.
Obbiettivo
È possibile in qualche modo fuori dagli schemi? In caso contrario, qual è il modo più semplice per implementarlo? Esiste un pacchetto di terze parti in giro che lo fa già?