Framework/Django

generics.ListCreateAPIView

JM Lee 2023. 6. 19. 01:10
728x90

generic이란 무엇인가?

  • 제네릭 뷰는 장고 프레임워크에서 제공하는 재사용 가능한 View 클래스.
  • 장고 프레임워크에서 제공하는 재사용 가능한 뷰(View) 클래스
  • DRF의 제네릭 뷰는 장고의 제네릭 뷰와 유사한 기능을 제공하면서, Restful API 개발에 특화됨.
  • 제네릭 뷰는 일반적으로 HTTP Method에 따라 다양한 동작을 수행함.
  • 상속을 통해 확장할 수 있음.
  • 필요한 메소드를 오버라이딩하거나 추가하여 customize할 수 있다.
  • >> 기존의 제네릭 뷰를 활용하면서 특정한 동작이나 로직 추가 가능.

 

ListCreateView란 무엇인가?

  • DRF에서 제공하는 제네릭(Generic) 뷰 중 하나
  • Restful API에서 컬렉션(Collection)을 나타내는 모델의 리스트를 생성하고 조회할 수 있음
  • 필요에 따라 해당 뷰 상속, 메소드 오버라이딩(사용자 정의 동작 추가)
  • ex) get_queryset()메소드, perform_create()

 

ListCreateView의 쓰임새

GET Method

  • 컬렉션의 모든 객체를 조회.
  • 요청이 오면 해당 컬렉션에 대한 QuerySet 생성, 직렬화 >> 응답으로 반환
  • 기본적으로 ListModelMixin을 사용

POST Method

  • 컬렉션에 새로운 객체 생성
  • 요청이 오면 전달된 데이터를 기반으로 새로운 객체 생성, 저장
  • 이후 생성된 객체를 직렬화하여 응답으로 반환
  • 기본적으로 CreateModelMixin 사용

 

APIView와 ListCreateAPIView의 차이

APIView

  • 가장 기본적인 형태의 뷰 클래스
  • 장고의 기본 뷰를 확장하여 Restful API 개발에 특화
  • APIView를 상속하면 사용자가 원하는 대로 HTTP 메소드에 동작 정의
  • 개발자에게 자유도가 더 크지만, 모든 동작을 직접 구현해야 함
  • 일부 반복적인 작업을 직접 처리
  • 모든 메소드 가능

generics.ListcreateAPIView

  • 미리 정의된 기능을 활용하여 일반적인 컬렉션 조회 및 생성 작업 처리
  • APIView 상속
  • ListModelMixin과 CreateModelMixin을 사용하여 컬렉션 조회 및 생성 작업 구현
  • 컬렉션의 조회 및 생성에 필요한 로직을 단순화할 수 있음
  • 기본적인 동작 이미 구현
  • 개발자는 필요한 로직만 오버라이딩하면 됨
  • POST, GET에 한정

'Framework > Django' 카테고리의 다른 글

Queryset method 정리  (1) 2023.06.20
시리얼라이저 오버라이딩  (0) 2023.06.19
MtoM 마이그레이션 오류(through 옵션)  (0) 2023.06.16
DRF Response()  (0) 2023.06.16
FBV 와 CBV 차이점  (0) 2023.06.16