Problem
Zgodnie z zaleceniami zamieszczonymi w blogu Best Practices for Designing a Pragmatic RESTful API , chciałbym dodać fields
parametr zapytania do interfejsu API opartego na Django Rest Framework, który pozwala użytkownikowi wybrać tylko podzbiór pól na zasób.
Przykład
Serializator:
class IdentitySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.Identity
fields = ('id', 'url', 'type', 'data')
Zwykłe zapytanie zwróciłoby wszystkie pola.
GET /identities/
[
{
"id": 1,
"url": "http://localhost:8000/api/identities/1/",
"type": 5,
"data": "John Doe"
},
...
]
Zapytanie z fields
parametrem powinno zwracać tylko podzbiór pól:
GET /identities/?fields=id,data
[
{
"id": 1,
"data": "John Doe"
},
...
]
Zapytanie z nieprawidłowymi polami powinno albo zignorować nieprawidłowe pola, albo zgłosić błąd klienta.
Cel
Czy jest to jakoś możliwe po wyjęciu z pudełka? Jeśli nie, jaki jest najprostszy sposób na wdrożenie tego? Czy istnieje pakiet innej firmy, który już to robi?