Django-REST-Framework 튜토리얼 파트 6
-
ViewSet & Router
DRF 에서 제공하는 추상 클래스
이용 시 API 의 상호작용이나 상태별 모델링에 집중할 수 있음
URL 구조는 기본 관례에 따라 자동으로 설정됨
-
ViewSet
View와 비슷한 클래스
get, put 메서드는 지원하지 않음
read, update 메서드 지원
핸들러 메서드가 실제 뷰로 구체화될 떄 이를 연결해주기만 함
복잡한 URL 설정은 Router 클래스 사용
-
View 와의 장단점 비교
-
장점
ViewSet의 유용한 추상화
API 전반에 걸쳐 일관적인 URL 관례 구현할 수 있음
작성할 코드 양 최소한으로 유지
URL 설정에 낭비될 정성을 API의 상호작용과 표현 자체에 쏟을 수 있음
-
단점
명확함이 약해짐
-
-
ReadOnlyModelViewSet
‘읽기 전용’ 기능 자동 자원
queryset, serializer_class 속성은 여전히 설정
-
ModelViewSet
읽기 기능과 쓰기 기능 모두 지원
-
@action
데코레이터 함수
create, update, delete에 해당하지 않는 기능에 사용
사용한 기능은 기본적으로 GET 요청에 응답
methods 인자 설정해서 POST 요청에 응답
추가 기능의 URL 은 기본적으로 메서드 이름과 같음
url_path 인자로 URL 변경 가능
-
ViewSet과 URL 명시적으로 연결
핸들러 메서드는 단지 URL 설정과 연결하는 기능만 담당
urls.py파일에서 ViewSet 클래스를 실제 View(concrete view)와 연결
-
-
Router
View를 라우터에 적절히 등록 시 View 코드와, View, URL이 관례적으로 자동 연결됨(DRF가 알아서 다 함)
-
DefalultRouter
API의 최상단 뷰를 자동으로 생성해주는 클래스
View
-
-