I zgodnie z założeniami DRF jeden endpoint obsługujemy jednym widokiem klasowym, który domyślnie wykorzystuje jeden serializer.
Wyobraźmy sobie jednak sytuację, kiedy klient wymaga jednego formatu danych w przypadku pobierania listy użytkowników (wystarczą mu wówczas takie informacje jak imię, nazwisko i adres email), natomiast w momencie tworzenia nowego użytkownika potrzebuje dodatkowo numeru PESEL, hasła i adresu.
Okazuje się wówczas, że jeden serializer to za mało i wygodniej byłoby stworzyć dwa oddzielne, każdy odpowiedzialny jedynie za swoją metodę (zgodnie z zasadą pojedynczej odpowiedzialności SRP).
Znając podstawy tworzenia widoków wiemy jednak, że w polu serializer_class
nie możemy podać więcej niż jednej klasy. Nie oznacza to jednak, że twórcy DRF usunęli ze swojego słownika pojęcie: “wiele serializerów w jednym widoku”.
A zatem w jaki sposób możemy osiagnąć nasz cel?
Dzisiaj postaram się przedstawić Wam kilka możliwych rozwiązań, w zależności od tego, jak zbudowaliście Wasze obecne widoki.