Django Rest Framework - Tips, Tricks with luca_zack

on under django
1 minute read

2017/8/4 파이콘 자료를 번역한 것입니다.

Django rest Framework - Main Advantages

  • 검색 가능한 인터페이스
  • 우수한 문서
  • 선호하는 view types : FBC, CBV 지원
  • ORM 및 non-ORM 데이터 소스에 대한 간편한 serializer
  • 인증과 권한 부여
  • nagination과 filtering
  • customizable

Django rest Framework - Main concepts

Request / Response

  • request.POST —> request.data
  • PATCHPUT
  • POSTFILES 데이터 포함
  • 수신 데이터의 자공 구분 분석
  • request.GET —> request.query_params
  • DRF 응답은 자동으로 응답을 요청된 콘텐츠 유형에 렌더링합니다.

Parsers / Renderers

  • Parser 는 다양한 콘텐츠 유형의 요청을 수락과 디코딩하는데 사용됩니다.
  • Content-Type 헤더 확인
  • JSON, Form, Multipart, FileUpload 및 사용자 커스텀
  • YAML, XML, JSONP 등 많은 third party packages를 사용할 수 있습니다.

  • Renderers 는 다양한 컨텐츠 유형의 응답을 반환하는데 사용됩니다.
  • 렌더러는 요청 수락 헤더(Accept request header)를 기준으로 결정됩니다.
  • JSON, static/rendered HTML 및 사용자 커스텀
  • YAML, XML, JSONP 등 많은 third party packages를 사용할 수 있습니다.

Serializers

  • 객체와 쿼리셋을 JSON/XML 또는 지원되는 다른 컨텐츠 유형으로 변환하는데 사용됩니다.
  • 처음부터 선언할 수 있거나 모델에서 자동으로 생성될 수 있습니다.
  • creation/update 전에 수신 데이터 확인
  • ModelSerializer는 모델 필드와 사용자 정의 필드를 지원합니다.
  • 중첩된 serializer 허용

Views

  • DRF @api_view 데코레이터를 사용한 FBV
  • DRF APIView를 사용한 CBV
  • Viewsets, GenericViewset, ModelViewsets

Authentication, Permissions and Throttling

  • 인증은 누가 요청을 하고 있는지 식별합니다.
  • 권한이 식별된 사용자가 엑세스할 수 있는 리소스를 정의합니다.
  • Throttling은 클라이언트가 할 수 있는 것보다 많은 요청을 정의합니다.

Pagination & Filtering

  • 요청한 리소스를 개별 데이터 페이지로 분할하는 작업은 Pagination이 담당합니다.
  • 필터링은 하나 이상의 기준에 따라 리소스를 제한합니다.
django
comments powered by Disqus