rest_framework의 디폴트 설정은 rest_framework/settings.py
내 DEFAULTS 사전을 통해 확인할 수 있다.
HTTP 최종 응답 생성
- JSONRenderer : JSON 포맷 응답, 실제 서비스 API 응답
- BrowsableAPIRenderer : HTML 포맷 응답(웹브라우저), 개발 시에 용이
HTTP 요청 내역 처리
- JSONParser : JSON 포맷 요청 처리
- FormParser : enctype application/x-www-form-urlencoded 요청 처리
- MultiPartParser : encytpe multipart/form-data 요청 처리 (파일 업로드 지원)
각 HTTP 요청의 인증
- SessionAuthentication : 세션을 통해 인증 유저를 찾음
- BasicAuthentication : 각 HTTP 요청에 대해 Basic Authentication을 수행
각 API 호출 권한 체크
디폴트 설정으로 모든 접근을 허용(AllowAny)한다.
특정 시간 내, 최대 요청수 제한(Throttling)
디폴트 설정으로 Throttling이 꺼져있어, 무분별한 API 호출을 막을 수 있다.
- DEFAULT_THROTTLE_CLASSES : 최대 호출를 제한할 로직 (클래스)
- DEFAULT_THROTTLE_RATES : 최대 호출 횟수 지정
페이징 처리
- DEFAULT_PAGINATION_CLASS : 페이징을 처리할 로직 (클래스)
- PAGE_SIZE : 1페이지 최대 갯수
필터(문자열 매칭 검색 기능)
DB에서 where 조건을 넣어주는 것과 동일한 설정이다. 디폴트로 필터 꺼짐 상태이다.
날짜/시간 포맷
날짜/시간 포맷은 모두 동일하게 ISO_8601로 설정되어 있다.
인코딩
json.dumps()를 통해 직렬화를 할 때 들어가는 옵션이다. 거의 바꿀 일은 없고 default 값을 사용하면 된다.
Browseable API
- HTML_SELECT_CUTOFF : Choice 옵션에서 Option 최대 허용수
- HTML_SELECT_CUTOFF_TEXT : 초과 시의 안내 메세지