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()메서드를 사용해서 호출 가능한 함수로 변환한다