Django 앱에 대한 API를 노출하기 위해 왜 다른 하나를 사용합니까?
답변:
django-rest-framework의 저자로서 저는 명백한 편견을 가지고 있습니다.
어쨌든 둘 다 좋습니다. 아마도 Tastypie는 합리적인 기본값 세트를 제공하는 것으로, REST 프레임 워크는 매우 훌륭하게 분리되고 유연하다고 특성화 할 것입니다. API에 많은 시간을 투자 할 계획이라면 각각의 문서 및 코드베이스를 살펴보고 자신에게 더 적합한 느낌을 얻으려고 노력하는 것이 좋습니다.
분명히 'Why TastyPie?'도 있습니다. 섹션의 README 및 'REST 프레임 워크 3' 입니다.
2012 년 5 월부터 Django 용 API 프레임 워크 선택에 대한 Daniel Greenfeld의 블로그 게시물을 참조하십시오 (큰 REST 프레임 워크 2.0 릴리스 이전에 아직 몇 달이 남았다는 점에 주목할 가치가 있습니다).
또한 Reddit에서 2013 년 12 월 과 2013 년 7 월에 동일한 질문을하는 사람들과 함께 스레드 몇 개를 작성했습니다 .
둘 다 좋은 선택입니다.
필터의 경우 tastypie는 기본적으로 더 강력합니다. 모델을 노출하는 뷰가있는 경우 Django 스타일 부등식 필터를 수행 할 수 있습니다.
http://www.example.com/api/person?age__gt=30
또는 OR 쿼리 :
http://www.example.com/api/mymodel?language__in=en&language__in=fr
이는 djangorestframework로 가능하지만 각 모델에 대한 사용자 정의 필터를 작성해야합니다.
역 추적의 경우 django-rest-framework에 더 깊은 인상을 받았습니다. Tastypie는 이메일을하려고 할 settings.ADMINS
때 예외에 DEBUG = False
. 경우 DEBUG = True
, 기본 오류 메시지가 JSON 직렬화 읽기 어렵습니다.
오래된 답변 편집 , tastypie는 더 이상 유지되지 않습니다. REST를 수행 할 프레임 워크를 선택해야하는 경우 Django REST 프레임 워크를 사용하십시오.
둘 사이의 실제 차이점에 대한 개요를 보려면 해당 문서를 읽어야합니다. 그들은 다소 완전하고 상당히 성숙합니다.
나는 개인적으로 tastypie 경향이 있습니다. 설정하는 것이 더 쉬운 것 같습니다. 그것은 굉장한 django-haystack 을 만든 동일한 사람들로부터 이루어졌으며 django-packages 에 따르면 Django REST 프레임 워크보다 더 많이 사용됩니다.
이것이 처음 요청 된 이후로 DRF가 강점에서 강점으로 바뀌 었다는 점은 주목할 가치가 있습니다.
github에서 두 가지 중 더 활동적입니다 (커밋, 스타, 포크 및 기여자 측면에서 모두).
DRF에는 OAuth 2 지원 및 탐색 가능한 API가 있습니다.
솔직히 마지막 기능은 킬러입니다. 내 모든 프론트 엔드 개발자가 어떻게 작동하는지 확신 할 수 없을 때 브라우저 가능한 API에서 'Go play; 알아요 '는 환상적입니다.
그 이유는 그들이 자신의 용어로 그것을 이해하고 API가 실제로 '문서'가 말하는 것을 절대적으로 수행한다는 것을 알고 있기 때문입니다. API와 통합하는 세계에서 그 사실만으로도 DRF가 이길 수있는 프레임 워크가됩니다.
django-tastypie-swagger
이 격차를?
글쎄, Tastypie와 DRF는 모두 훌륭한 선택입니다. 당신은 단순히 수없는 둘 중 하나 잘못 이동합니다. (저는 Piston에 대해 일한 적이 없습니다. 그리고 그 종류는 이제 더 이상 유행하지 않으므로 그것에 대해 언급 할 수 없습니다. Taken for Granted.) 겸손하게 생각합니다. 선택은 귀하 (및 귀하의 기술 팀)의 기술, 지식 및 능력에 따라 이루어져야합니다. 테이 스티 파이와 DRF가 제공하는 것보다는 코스 밖에서 Quora, Facebook 또는 Google과 같은 정말 큰 것을 구축하지 않는 한.
개인적으로 저는 장고를 제대로 몰랐을 때 처음 테이 스티 파이 작업을 시작했습니다. 그 당시에는 REST와 HTTP 만 잘 알고 있었지만 django에 대한 지식이 거의 없거나 거의 없었습니다. 내 유일한 의도는 모바일 장치에서 사용되는 RESTful API를 즉시 구축하는 것이기 때문입니다. 그러니 만약 당신이 '그때 나는 장고- 뉴비 라고 불렀다'와 같다면 , 테이 스티 파이를 더 많이 생각하지 마세요.
하지만 장고로 다년간 일한 경험 이 있다면 , 고급 개념 (클래스 기반 뷰, 양식, 모델 유효성 검사기, 쿼리 세트, 관리자 및 모델 인스턴스와 이들이 서로 상호 작용하는 방식과 같은)을 사용하는 것이 매우 편안하다는 것을 안다. * DRF로 이동합니다. ** DFR은 django의 클래스 기반 뷰를 기반으로합니다. DRF는 관용적 인 장고입니다. 당신이 모델 양식, 유효성 검사기 등을 작성하는 것과 같습니다. DRF도 중요합니다.) DRF에는 django와 같은 많은 내장 매직 메서드가 있습니다. 장고 마법의 방법과 철학을 좋아한다면 ** DRF **는 당신을위한 것입니다.
이제 정확한 질문에 답하기 위해 :
Tastypie :
장점 :
단점 :
DRF :
단점 :
개인적으로 다음 프로젝트에서 무엇을 사용합니까?
이제 저는 더 이상 MAGIC 및 Out-of-box 기능의 팬이 아닙니다. 왜냐하면 그들은 모두 큰 비용을 내야하기 때문입니다. * 프로젝트 시간과 예산에 대한 모든 선택권과 제어권이 있다고 가정하면 RESTLess ( https://github.com/toastdriven/restless ) (TastyPie 및 django-haystack ( http : //haystacksearch.org/ )). 그리고 같은 문제에 대해 Flask 와 같은 경량 웹 프레임 워크를 선택하십시오 .
그런데 왜? -더 읽기 쉽고 간단하며 관리하기 쉬운 관용적 파이썬 (일명 파이썬) 코드. 더 많은 코드이지만 궁극적으로 큰 유연성과 사용자 정의를 제공합니다.
Django와 TastyPie 및 DRF 중 하나 밖에 선택의 여지가 없다면 어떨까요?
그렇다면 처음에 DRF / TastyPie를 선택한 이유는 무엇입니까?
더 나은 결정을 내리는 데 도움이되기를 바랍니다.
기타 참고 자료-1 . The State of Tastypie ( http://toastdriven.com/blog/2014/may/23/state-tastypie/ ) 2. django-tastypie와 djangorestframework의 차이점은 무엇입니까? ( django-tastypie와 djangorestframework의 차이점은 무엇입니까? )
두 가지를 모두 사용한 결과, Django Rest Framwork에 대해 제가 좋아했던 (선호하는) 한 가지는 Django와 매우 일치한다는 것입니다.
모델 시리얼 라이저를 작성하는 것은 모델 양식을 작성하는 것과 매우 유사합니다. 내장 된 Generic View는 Django의 HTML 용 일반 뷰와 매우 유사합니다.
Django-tastypie는 더 이상 원래 제작자가 관리하지 않으며 자신 만의 새로운 경량 프레임 워크를 만들었습니다.
현재 API를 공개하려면 django와 함께 django-rest-framework를 사용해야합니다.
대기업에서 사용하고 있습니다. django-rest-framework는 django 팀의 핵심 멤버이며 django-rest-framework를 유지하기위한 자금을받습니다.
django-rest-framework에는 또한 계속해서 늘어나는 3rd arty 패키지가 많이 포함되어있어 번거 로움을 줄이고 API를 더 쉽게 빌드 할 수 있습니다.
drf의 일부도 django에서 병합됩니다.
drf는 django-tastypie보다 더 나은 패턴과 도구를 제공합니다.
요컨대, 그것은 잘 설계되고, 잘 유지되고, 자금이 조달되고, 대규모 조직에서 신뢰하는 거대한 타사 앱을 제공하고, tastypie보다 더 쉽고, 더 적은 상용구 등을 제공합니다.