APIView i funkcja @api_view
Tworzenie endpointów na dwa sposoby
APIView i funkcja @api_view to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.
Dwa sposoby tworzenia endpointów
DRF pozwala pisać endpointy jako klasy za pomocą APIView albo jako zwykłe funkcje dekorowane przez @api_view. Oba sposoby posługują się tym samym dialektem JSON.
Styl klasowy
APIView dziedziczy po Django View, ale bezpłatnie zapewnia analizowanie żądań, negocjację formatu treści i uporządkowane obsługiwanie odpowiedzi oferowane przez DRF.
from rest_framework.views import APIViewMetody odpowiadają czasownikom
W APIView należy napisać osobną metodę dla każdego czasownika HTTP: get do odczytu, post do tworzenia i tak dalej. Dzięki temu każda akcja jest wyraźnie oddzielona.
class BookList(APIView):
def get(self, request):
...
def post(self, request):
...Zwracanie obiektu Response
Zamiast HttpResponse należy zwracać obiekt Response DRF, który renderuje JSON lub browsable API zależnie od żądania.
from rest_framework.response import Response
return Response({'ok': True})Odczytywanie request.data
DRF analizuje treść żądania za Państwa, więc przesłany JSON można odczytać z request.data jak zwykły słownik Pythona, bez ręcznego dekodowania.
title = request.data['title']Styl funkcyjny
W przypadku prostych endpointów dekorator @api_view przekształca zwykłą funkcję w widok DRF i określa, które metody HTTP przyjmuje.
from rest_framework.decorators import api_viewDeklarowanie dozwolonych metod
Czasowniki przekazuje się do dekoratora. Każda niewymieniona metoda automatycznie otrzyma odpowiedź 405 Method Not Allowed, więc nie trzeba obsługiwać jej samodzielnie.
@api_view(['GET', 'POST'])
def books(request):
...Ten sam obiekt Response
Widoki funkcyjne używają dokładnie tego samego obiektu DRF Response, dlatego w jednym projekcie można bez przeszkód łączyć styl klasowy i funkcyjny.
return Response(serializer.data)Wybór stylu
Po @api_view warto sięgnąć, gdy endpoint jest mały i jednorazowy. APIView należy wybrać, gdy potrzebne są wielokrotnego użytku, uporządkowane metody w klasie.
Ustawianie statusu
Oba style pozwalają przekazać status= do Response, aby klient otrzymał właściwy kod HTTP, na przykład 201 po utworzeniu czegoś nowego.
Response(data, status=201)Ta sama moc, dwa kształty
Niezależnie od wyboru klasy lub funkcji otrzymują Państwo analizowanie żądań, odpowiedzi i obsługę statusów DRF. Różnica dotyczy głównie structure i osobistych preferencji.
Szybkie sprawdzenie
Co dekorator @api_view robi ze zwykłą funkcją?
Podsumowanie: dwa style widoków
Endpointy można tworzyć za pomocą klasowego APIView lub funkcyjnego @api_view, a oba style zwracają obiekt DRF Response. Należy wybrać formę najlepiej dopasowaną do potrzeb. 🧩
Często zadawane pytania
Czy lekcja „APIView i funkcja @api_view” jest bezpłatna?
Tak — pełny tekst „APIView i funkcja @api_view” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „APIView i funkcja @api_view”?
Tworzenie endpointów na dwa sposoby Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Django Academy?
Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „APIView i funkcja @api_view”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?
Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Instalowanie i konfigurowanie DRF
- Serializery: model do JSON
- APIView i funkcja @api_view
- Przeglądalne API i kody statusu