supergravity
DjangoRest api_view 정리 본문
Django REST framework에서 함수형 views를 제공해준다. 함수형 뷰는 플라스크와 마찬가지고 파이썬의 decorator 문법을 이용하여 제공한다. 함수형 views에서 decorato는 함수를 감싸고 있으며 Request의 instance를 받는다.(장고 HttpRequest를 받는 것이 아니다) 그리고 Response 하는 것을 도와준다. (여기서 Response는 Djano HttpResponse이다) 마지막으로 어떠한 Request를 쓸지 정하게 해 준다.
@api_view 기본
함수형 대코 레이터의 가장 중요한 점은 HTTP method를 리스트를 받는 것이다.
@api_view(http_method_names=['GET', 'POST'])
위의 경우 render, parser, authentication이 명시되지 않았는데 기본적으로 settings에서 정의된다. 또한 http method를 명시하지 않을 경우 기본적으로 get으로 설정이 된다. 만약 명시되지 않은 방법으로 요청을 받으면 405를 response 한다.
Api policy decorators
기본적은 세팅들을 override 하기 위해서 다른 decorator를 추가하여 적으면 된다. 예를 들어 @throttle_classes([OncePerDayUserThrottle])의 경우
decorator들의 종류는 아래와 같고 리스트한개를 argument로 받는다.
- @renderer_classes(...)
- @parser_classes(...)
- @authentication_classes(...)
- @throttle_classes(...)
- @permission_classes(...)
다음번엔
renderer : www.django-rest-framework.org/api-guide/renderers/
=> response시 다양한 타입 설정
parser : www.django-rest-framework.org/api-guide/parsers/
=> 요청받는 다양한 타입 설정
authentication : www.django-rest-framework.org/api-guide/authentication/
=> 사용자 인증은 사용자가 누구인지 확인하는 것이다(ex로그인? 토큰? 반 자른 동전?). 그러고 나서 통상적으로 permission과 throtting을 이용하여 data 접근을 관리한다.
permission : www.django-rest-framework.org/api-guide/permissions/
=>permission은 사용자 인증 후에 (로그인) 유저가 권한이 있는지 확인하는 것이다.
throttling: www.django-rest-framework.org/api-guide/throttling/
=> throttling은 권한이 있는 유저에게 횟수를 제한하는 것이다
Ref
www.django-rest-framework.org/
'개발중 기억해야 할만한 것들 > 파이썬' 카테고리의 다른 글
파이썬 기본 (2) | 2021.03.07 |
---|---|
Django Admin 페이지 그래프 만들기 graph - 검색 기록 데이터 저장 및 그래프 (0) | 2021.03.01 |
파이썬 환경을 이용한 nodeenv 사용 (0) | 2020.12.23 |
Django CROS 설정 (1) | 2020.12.08 |
독립된 django rest 서버 토큰 인증? (0) | 2020.12.07 |