파비의 매일매일 공부기록

RESTful 파이썬 웹 제작 - 4장 #1 본문

Study/Python

RESTful 파이썬 웹 제작 - 4장 #1

fabichoi 2022. 2. 13. 23:30

이번 장은 스로틀, 필터, 테스트에 대한 내용이다.

- 스로틀 클래스의 이해, 정책 구성, 테스트
- 클래스, 뷰의 필터링 검색, 정렬 이해 및 테스트
- 브라우져블 API의 필터링, 검색 정렬
- 단위 테스트, 테스트 버러 지리 개선, 배포

스로틀은 한 번도 써본 적이 없어서 궁금.
인증된 사용자의 API 호출 횟수 제한인 거 같긴 한데.. 좀 더 알아봐야지.

저자는 스로틀을 사용해서 아래의 제한을 구성
- 인증된 사용자 : 시간당 최대 20개의 요청
- 미인증 사용자 : 시간당 최대 5개의 요청
- 인증/미인증 무관하게 게임 카테고리 관련 뷰에 시간당 최대 100건의 요청 설정

rest_framework.throttling 모듈 사용 : get_cache_key 메서드 오버라이드
- AnonRateThrollte : 익명 사용자가 할 수 있는 요청 비율 제한. IP를 캐시
- UserRateThrottle : 특정 사용자가 요청할 수 있는 속도 제한. ID를 캐시
- ScopedRateThrottle : throttle_scope 속성에 할당된 값으로 식별되는 API의 특정 부분에 대한 요청 비율 제한.

스로틀 정책 구성 및 테스트
- settings.py에 DEFAULT_THROTTLE_CLASSES, DEFAULT_THROTTLE_RATES 선언
- GameCategoryList/GameCategoryDetail 클래스에 throttle_scope, throttle_classes 필드 추가
- 여러 번 동일 API 호출하여 테스트

반응형
Comments