Проблема
В соответствии с рекомендациями в блоге Best Practices for Designing a Pragmatic RESTful API , я хотел бы добавить fields
параметр запроса в API на основе Django Rest Framework, который позволяет пользователю выбирать только подмножество полей для каждого ресурса.
пример
Сериализатор:
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"
},
...
]
Запрос с недопустимыми полями должен либо игнорировать недопустимые поля, либо вызывать ошибку клиента.
Цель
Такое возможно как-то из коробки? Если нет, то как это проще всего реализовать? Есть ли сторонний пакет, который это уже делает?