viewset과 apiview는 무엇일까?

주영광·2024년 12월 26일
0

용어정리

목록 보기
5/7

간단히 결론부터 말하면 다음과같다.

간단하게 할때 -> viewset
복잡하게 할때 -> apiview

ViewSet이 적합한 경우

간단한 CRUD 중심 API:

데이터베이스 모델과 직결된 CRUD 작업을 구현할 때, ViewSet과 ModelViewSet이 적합합니다.
URL 라우팅이 자동으로 처리되므로 코드가 간결하고 유지보수가 쉬워집니다.

RESTful API 설계:

RESTful 표준 동작(GET, POST, PUT, DELETE 등)을 따르는 경우, ViewSet은 빠르게 CRUD 기능을 구축할 수 있습니다.
커스텀 로직이 적음:

단순 CRUD 작업 외에 추가적인 로직이 거의 필요하지 않을 때 적합합니다.
예를 들어, 블로그 포스트, 사용자 관리 등의 단순한 API를 구축할 때.

커스텀 로직이 적음:

단순 CRUD 작업 외에 추가적인 로직이 거의 필요하지 않을 때 적합합니다.
예를 들어, 블로그 포스트, 사용자 관리 등의 단순한 API를 구축할 때.

APIView가 적합한 경우

복잡한 비즈니스 로직:

요청 처리 과정에서 데이터 검증, 외부 API 호출, 복잡한 계산 등이 필요할 때.
예를 들어, 주문 처리 로직, 동적 권한 부여, 상태 전이에 따른 동작 등이 포함된 경우.

비표준 URL 설계:

RESTful 표준이 아닌 커스텀 URL이 필요하거나, Router로 처리할 수 없는 경로가 있는 경우.
예를 들어, /orders//confirm/와 같은 특정 동작이 포함된 API.

HTTP 메서드별 세부 제어 필요:

각 HTTP 메서드(GET, POST, PUT, DELETE)에서 동작을 세밀하게 제어해야 할 때.
예를 들어, POST 요청에서 특정 조건에 따라 다른 동작을 실행하거나, 응답 구조가 복잡한 경우.

추가적인 인증/권한 로직:

기본 권한 설정 외에 복잡한 인증 및 권한 로직이 필요한 경우.

ViewSet은 데이터 모델과 관련된 CRUD 작업을 효율적으로 처리할 때 가장 적합하다. Router와 함께 사용하여 URL 라우팅을 자동화하고, RESTful API 설계를 간소화할 수 있다.

만약, 복잡한 비즈니스 로직이나 비표준 URL 설계가 필요하다면 APIView나 GenericAPIView를 사용하는 것이 더 나은 선택일 수 있다. 즉, 간단한 CRUD 중심 API를 개발할 때는 ViewSet이 가장 강력하고 효율적인 도구이지만, 로직이 복잡해질걸 예상한다면 apiview나 다른 커스텀 가능한 DRF를 쓰는게 유용할 듯 하다.

profile
오직 실력만이 나를 증명한다.

0개의 댓글