2010-11-20 20 views
9

DjangoプロジェクトをDjangoで "再構築"したいときはどうしますか?Djangoプロジェクト/アプリケーション用のRESTful API

は、私はそれを行うための3つのオプションが本当にあるという結論に達しました

私にとってこれを行う正しい方法は、すべてのものを試して、私のために最も良いものを選ぶことです。その間、あなたのことを聞きたいのですが...

ありがとうございました。

答えて

7

私はジャンゴピストンに最も精通しています。私は自然にその方向に向かっていきます。

django-rest-interfaceは、モデルをリソースとして公開しているだけでなく、django-restful-resourcesも同じように一人の男が一度だけ試みることを示しています。

ピストンは、bitbucket.org自身のサイト開発から生まれ、柔軟性が非常に高くなりました。モデルインスタンスだけでなく、リソースのアクセスメソッドからほぼすべてのオブジェクトを返すことができ、正しく動作しますコード化される。また、フォームの検証(とにかくそれを稼働させることができれば)と、スロットリングの要求など、いくつかの素晴らしい機能のサポートが組み込まれています。

+0

お返事ありがとうございます。 – Ali

3

django-restful-resourcesを書いた "some guy"として、なぜそれが存在するのかを明確にしたいと思います。モデルをリソースとして公開しようとするのではなく、HTTP動詞ごとに1つの異なるハンドラメソッドに1つのURLをマップできるようにする手段です。それで全部です。これは、モデルオブジェクトを公開するために使用できますが、単一のURLおよびHTTP動詞を介して対話したいリソースやその他のものとしてサービスを公開するためにも使用できます。よりフル機能のソリューションをお探しの場合は、ぜひPistonをお試しください。

+0

こんにちはTom、時間を割いてこの質問に答えることに感謝します。 HTTP動詞について教えてください。ありがとう。 – Ali

+2

HTTP動詞(またはHTTPメソッド)はGET、POST、PUT、HEAD、DELETE、OPTIONSおよびTRACEです。 RESTfulなWebサービスを書くための使い方の説明は、 - http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html - http:// www。 amazon.com/REST-Practice-Hypermedia-Systems-Architecture/dp/0596805829 - http://watchitlater.com/blog/2009/11/http-method-primer-for-restful-web-services/(恥知らずのプラグ) – Tom

2

eternicodeに記載されているように、django-pistonは優れています。それは成熟し、よく紹介され、その裏には良いコミュニティがあります。現時点では、現在進行中の開発が不足しているように見えますが、コミュニティに依存するフォークの話があるため、変更される可能性があります。

django-tastypieもまた価値があり、現在のところその背後には多くの刺激があるようです。

また、考慮する価値のある別のオプションを公開しました:django-rest-frameworkAPI auto-documentationのような素晴らしい機能がいくつかあります。

これはsaverioのように、Django 1.3のクラスベースのビューを使用しています。つまり、フレームワークを完全に使用することなく、提供するMixInクラスをいくつかドロップできます。 (例:adding HTTP content negotiation for serializing output to multiple types

5

django 1.3の新しいクラスベースのジェネリックビューでは、独自のシリアライザとデシリアライザを使用して独自のレストインタフェースを実装することが非常に簡単で、ストックコードだけでほぼ完全なピストンの実装を複製します。私は、一般的なRESTfulなリソースクラスとサブリソース、アソシエーションのための自然なキーサポート、jsonとXMLシリアル化など、500行のコードでView(1.3)ベースのレストモジュールを作成しました。モジュールは実際に私のアプリの要求に合わせて調整されています

私は、ピストンのコードのいくつかの制限を克服するために、例えば、.get(.get() )、または直列化でモデルのメソッドを使用できないことがあります。

あなたがそれを必要に応じて実行すれば、数日後には完全に理解して制御できる一連のクラスとミックスインができます。

+0

http://github.com/rewrittenで自分の安らかな意見を試すことができます。徹底的にテストされているわけではありません。 – rewritten