Problema
Como se recomienda en la publicación de blog Mejores prácticas para diseñar una API RESTful pragmática , me gustaría agregar un fields
parámetro de consulta a una API basada en Django Rest Framework que permite al usuario seleccionar solo un subconjunto de campos por recurso.
Ejemplo
Serializador:
class IdentitySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.Identity
fields = ('id', 'url', 'type', 'data')
Una consulta regular devolvería todos los campos.
GET /identities/
[
{
"id": 1,
"url": "http://localhost:8000/api/identities/1/",
"type": 5,
"data": "John Doe"
},
...
]
Una consulta con el fields
parámetro solo debe devolver un subconjunto de los campos:
GET /identities/?fields=id,data
[
{
"id": 1,
"data": "John Doe"
},
...
]
Una consulta con campos no válidos debe ignorar los campos no válidos o generar un error de cliente.
Objetivo
¿Es esto posible fuera de la caja de alguna manera? Si no es así, ¿cuál es la forma más sencilla de implementar esto? ¿Existe un paquete de terceros que ya haga esto?