PYTHON

[TIL] 20240424 50일차

creative.darkstar 2024. 4. 24. 21:08

DRF Single Model CRUD

기능 HTTP Method url
목록조회 GET /<A>/
상세조회 GET /<A>/<int:id>/
생성 POST /<A>/
수정 PUT /<A>/<int:id>/
삭제 DELETE /<A>/<int:id>/

 

@api_view()

데코레이터. 인자 값으로 아무것도 없다면 GET 요청만 허용

인자값 이외의 요청일경우 405 Method Not Allowed

 

주소가 동일한 것들은 분기 처리를 하는 것이다.

 

 

DRF Class Based View

특징

- 특정 Http Method에 대한 처리를 함수로 분리 가능
GET요청에 대한 처리는 'get()'에서, POST 요청에 대한 처리는 'post()'에서 정의할 수 있음

 

- 코드의 재사용성과 유지보수성 향상

종류

- APIView

DRF CBV의 베이스 클래스


- GenericAPIView
일반적인 API 작성을 위한 기능이 포함된 클래스
보통 CRUD 기능이 대부분인 상황을 위해 여러가지 기능이 미리 내장

 

- Mixin
재사용 가능한 여러가지 기능을 담고있는 클래스
여러 클래스를 섞어서 사용하기 위함

 

- ListModelMixin

리스트 반환 API를 만들기 위해 상속 받는 클래스


- CreateModelMixin

새로운 객체를 생성하는 API를 만들기위해 상속 받는 클래스


- ViewSets
여러 엔드포인트(endpoint)를 한 번에 관리할 수 있는 클래스
RESTful API에서 반복되는 구조를 더 편리하게 작성할 수 있는 방법을 제공

 

 

urlpatterns = [
    path("", views.ListAPIView.as_view(), name="list"),
]

 

as_view() 메서드를 사용해서 URL 패턴에 연결
클래스 자체를 넘기지 않고 as_view()메서드를 사용해서 호출 가능한 함수로 변환한다