Django=アプリのAPIを公開するために、なぜあなたはもう一方を使用するのでしょうか?
Django-rest-frameworkの作者として、私は明らかな偏見を持っています;)が、これについての私の希望する公平に客観的な意見は次のようなものです:
いずれにせよ、両方とも良いです。 Tastypieは、すぐに使えるデフォルトの適切なセットを提供し、RESTフレームワークは非常にうまく分離され、柔軟であると見なすでしょう。 APIについては、それぞれのドキュメントとコードベースを参照し、より自分に合った感触を得ることをお勧めします。
もちろん、READMEの 'Why TastyPie?' セクションと 'REST framework 3' もあります。
Daniel Greenfeldのブログ投稿 Django用のAPIフレームワークの選択 、2012年5月から(これは大きなREST framework 2.0リリースのまだ数か月前であったことに注意してください)。
両方とも良い選択です。
フィルターの場合、すぐに使用できる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です 。これは読みにくいです。
[〜#〜] edit [〜#〜]時代遅れの答え、tastypieはもはや維持されていません。 RESTを実行するフレームワークを選択する必要がある場合は、Django REST frameworkを使用してください。
両者の実際の違いに関する概要については、ドキュメントを参照してください。それらは多かれ少なかれ完全であり、かなり成熟しています。
私は個人的にはおいしいのが好きです。設定は簡単だと思われます。 Django-haystack を作成したのと同じ人々から行われました。これはすばらしく、 Django-packages によれば、Django = RESTフレームワーク。
これが最初に尋ねられて以来、DRFが力強くなってきたことは注目に値します。
Githubの2つのうち、よりアクティブです(コミット、スター、フォーク、貢献者の両方の面で)
DRFにはOAuth 2のサポートとブラウズ可能なAPIがあります。
正直なところ、最後の機能がキラーです。フロントエンドの開発者全員が、何かがどのように機能するのかわからないときにブラウジング可能なAPIを指すことができ、「プレイしてください。見つける」は素晴らしい。
とりわけ、それは彼らが自分の用語でそれを理解し、APIが本当に、間違いなく、絶対に「ドキュメント」が言うことをすることを知っていることを意味するからです。 APIとの統合の世界では、その事実だけでDRFが最高のフレームワークになっています。
Django-tastypieは元の作成者によって維持されなくなり、彼自身の新しい軽量フレームワークを作成しました。
現在、APIを公開する場合は、DjangoでDjango-rest-frameworkを使用する必要があります。
大企業がそれを使用しています。 Django-rest-frameworkはDjangoチームのコアメンバーであり、Django-rest-frameworkを維持するための資金を得ています。
Django-rest-frameworkには、成長を続ける3番目の芸術的なパッケージも非常に多くあります。これにより、より簡単にAPIをより簡単に構築できます。
Drfの一部もDjango適切にマージされます。
drfは、Django-tastypieよりも優れたパターンとツールを提供します。
要するに、それはうまく設計され、よく維持され、資金提供され、巨大なサードパーティのアプリを提供し、大規模な組織から信頼され、タスティーパイよりも簡単で定型的なものなどです。
まあ、TastypieとDRFはどちらも素晴らしい選択肢です。あなたは単純にどちらでも間違ってはいけません。 (私はピストンの仕事をしたことはありません。その日はもうトレンドではないので、コメントすることもコメントすることもできません。許可されています。)私の謙虚な意見では:あなた(そしてあなたの技術チーム)のスキル、知識、能力に基づいて選択する必要があります Quora、Facebook、Googleのように本当に大きい。
個人的には、Djangoを適切に知らないうちに、TastyPieで最初に作業を始めました。当時はすべて理にかなっており、RESTとHTTPを非常によく知っていましたが、Djangoについてほとんどまたはまったく知識がありませんでした。私の唯一の意図は、モバイルデバイスで消費されるRESTful APIをすぐに構築することだったからです。もしあなたが「たまたまDjango-new-bieと呼ばれている」のようなら、TastyPieにこれ以上行くとは思わないでください。
ただし、Djangoを使用したyearの経験が豊富な場合は、クラスベースビュー、フォーム、モデルバリデーター、クエリセット、マネージャー、モデルインスタンスなどの高度な概念を使用して、それを裏返し、非常に快適に理解し、彼らが互いにどのように相互作用するか)、** DRFに行く。 ** DFRはDjangoのクラスベースのビューに基づいています。 DRFは慣用的なDjangoです。モデルフォーム、バリデーターなどを書いているようです(まあ、イディオムDjangoはイディオムpythonに近いところはありません。pythonエキスパートでもDjangoそれから、最初はイディオムDjango哲学に適合するのに苦労しているかもしれません。そのためDRFも同様です。 DRFには、Djangoと同様に多くの組み込みのマジックメソッドが付属しています。 Django魔法の方法と哲学を愛するなら** DRF **はあなただけのものです。
さて、正確な質問に答えるためだけに:
Tastypie:
利点:
欠点:
DRF:
欠点:
個人的に次のプロジェクトで何を使用しますか?
今、私はもはやMAGICおよびOut-of-box機能のファンではありません。なぜなら、それらはすべて*多大な費用がかかるからです。 *すべての選択肢があり、プロジェクトの時間と予算を制御できると仮定して、RESTLESS( https://github.com/toastdriven/restless )(TastyPieの作成者によって作成された)およびDjango-haystack( http://haystacksearch.org/ ))。そして同じ問題のために、おそらく/間違いなくFlask。のような軽量のWebフレームワークを選択してください。
しかし、なぜ? -より読みやすく、シンプルで管理しやすい慣用的なpython(別名Pythonic)コード。より多くのコードが、最終的には優れた柔軟性とカスタマイズを提供します。
DjangoおよびTastyPieとDRFのいずれかしか選択できない場合はどうでしょうか?
では、最初にDRF/TastyPieを選んだ理由は何ですか?
より良い決断を下すのに役立つことを願っています。
その他の参照- 1. Tastypieの状態( http://toastdriven.com/blog/2014/may/23/state-tastypie/ )2.何がDjango-tastypieとdjangorestframeworkの違いは? ( Django-tastypieとdjangorestframeworkの違いは何ですか? )
両方を使用して、Django Rest Framworkについて気に入った(好まれた)ことの1つは、Djangoと非常に一貫していることです。
モデルシリアライザーの記述は、モデルフォームの記述に非常に似ています。組み込みの汎用ビューは、DjangoのHTMLの汎用ビューに非常に似ています。