Проблема
Как рекомендовано в blogpost Рекомендации по разработке API-интерфейса Pragmatic RESTful, я хотел бы добавить параметр запроса fields
к API-интерфейсу Django Rest Framework, который позволяет пользователю выбирать только подмножество полей для каждого ресурса.
Пример
Serializer:
class IdentitySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.Identity
fields = ('id', 'url', 'type', 'data')
Обычный запрос будет возвращать все поля.
GET /identities/
[
{
"id": 1,
"url": "http://localhost:8000/api/identities/1/",
"type": 5,
"data": "John Doe"
},
...
]
Запрос с параметром fields
должен возвращать только подмножество полей:
GET /identities/?fields=id,data
[
{
"id": 1,
"data": "John Doe"
},
...
]
Запрос с недопустимыми полями должен либо игнорировать недопустимые поля, либо вызывать ошибку клиента.
Цель
Возможно ли это из коробки? Если нет, то какой самый простой способ реализовать это? Есть ли сторонний пакет, который делает это уже?