supergravity

DjangoRest api_view 정리 본문

개발중 기억해야 할만한 것들/파이썬

DjangoRest api_view 정리

supergravity 2020. 12. 31. 04:08

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/

 

Home - Django REST framework

 

www.django-rest-framework.org

 

Comments