Problema
Conforme recomendado na postagem do blog Best Practices para projetar uma API RESTful pragmática , gostaria de adicionar um fields
parâmetro de consulta a uma API baseada no Django Rest Framework que permite ao usuário selecionar apenas um subconjunto de campos por recurso.
Exemplo
Serializer:
class IdentitySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.Identity
fields = ('id', 'url', 'type', 'data')
Uma consulta regular retornaria todos os campos.
GET /identities/
[
{
"id": 1,
"url": "http://localhost:8000/api/identities/1/",
"type": 5,
"data": "John Doe"
},
...
]
Uma consulta com o fields
parâmetro deve retornar apenas um subconjunto dos campos:
GET /identities/?fields=id,data
[
{
"id": 1,
"data": "John Doe"
},
...
]
Uma consulta com campos inválidos deve ignorar os campos inválidos ou gerar um erro do cliente.
Objetivo
Isso é possível fora da caixa de alguma forma? Se não, qual é a maneira mais simples de implementar isso? Existe um pacote de terceiros que já faz isso?