Django REST Framework GenericAPIView

Choi Yeonung·2021년 10월 31일
0

Django REST Framework

목록 보기
2/3
post-thumbnail

FBV, CBV에 관한 내용을 보고 싶다면 이전 포스트로 가면 된다.

GenericAPIView를 사용하면 REST API에서 자주 사용되는 행위를 FBV나 CBV보다 더 간단하게 구현할 수 있다.

다음은 CRUD를 GenericAPIView를 이용해 짠 코드다.

# views.py
from rest_framework import generics
from .models import Quiz
from .serializers import QuizSerializer

class QuizListCreateView(generics.ListCreateAPIView):
    queryset = Quiz.objects.all()
    serializer_class = QuizSerializer

class QuizRetrieveUpdateDestroyView(generics.RetrieveUpdateDestroyAPIView):
    queryset = Quiz.objects.all()
    serializer_class = QuizSerializer

# urls.py
from django.urls import path
from .views import QuizListCreateView, QuizRetrieveUpdateDestroyView

urlpatterns = [
    path("", QuizListCreateView.as_view()),
    path("<int:pk>/", QuizRetrieveUpdateDestroyView.as_view()),
]

HTTP method별 행위, response가 기본적으로 정의되어 있어 구현할 필요가 없다. 정말 아름답지 않은가?

만약 행위를 직접 구현하고 싶다면 overriding을 이용하면 된다. 공식 문서에 자세한 내용이 있다.

GenericAPIView에 관한 공식 문서는 다음을 참조하자.
https://www.django-rest-framework.org/api-guide/generic-views/

profile
Code as a hobby

0개의 댓글