DjangoでRESTful APIを作成する方法論の選択に苦労しています。私が試したアプローチはどれも「銀」の弾丸ではないようです。 http://fi.am からのWAPIはおそらく私が達成したいものに最も近いですが、リソース識別子であるパラメーターを持つことが真のRESTful APIで受け入れられるかどうかはわかりません「クリーン」なURL形式ではなく、クエリ文字列で。 WAPI RestBinding.PATTERNを変更してURLを「クリーンアップ」するための提案はありますか?私が検討した別のオプションはDjango-Rest-Interfaceです。ただし、このフレームワークは、私が必要とする最も重要な要素の1つに違反しているようで、他のリソースへの参照用の完全なリソースURLを含めることです( http://jacobian.org/writing/rest-worst-practicesを参照してください/ リンクの不適切な使用)。最後のオプションは、Django-multiresponseを使用することで、基本的には長い間実行します。
特にこの決定に対処した人々に、私にあなたの最善のアドバイスを提供してください。
最近リリースされたDjango-pistonは、適切なREST Djangoのインターフェースを作成するのに最適なソリューションです。 Django-piston
注:Django-ピストンはもはやメンテナンスされていないようです(参照下のコメント)
Djangoにとって、tastypieとピストンに加えて、Django-rest-frameworkは言及する価値のあるものです。私はすでにプロジェクトの1つをスムーズに移行しました。
Django RESTフレームワークは、Django用の軽量なRESTフレームワークであり、適切に接続された自己記述的なRESTful Web APIの構築を容易にすることを目的としています。
簡単な例:
from Django.conf.urls.defaults import patterns, url
from djangorestframework.resources import ModelResource
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
from myapp.models import MyModel
class MyResource(ModelResource):
model = MyModel
urlpatterns = patterns('',
url(r'^$', ListOrCreateModelView.as_view(resource=MyResource)),
url(r'^(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MyResource)),
)
公式サイトの例をご覧ください。上記のすべてのコードは、API、説明付きのドキュメント(石鹸ベースのWebサービスなど)、さらにテスト用のサンドボックスを提供します。とても便利。
Django-tastypie はそれを行うための良い方法です。彼らのスローガン:「Django 2010年以降のアプリ)のためのおいしいAPIの作成」はとても快適です;)
Django-dynamicresponse を見ることができます。これはREST JSONを使用したAPIをDjangoアプリケーションに追加するための軽量フレームワークです。
既存のDjangoアプリにAPIサポートを追加するには最小限の変更が必要です。また、新しいプロジェクトの最初からAPIを簡単にビルドできます。
基本的に、JSONをrequest.POSTに解析するためのミドルウェアサポートに加えて、返されたコンテキストをJSONにシリアル化するか、リクエストタイプに基づいて条件付きでテンプレート/リダイレクトをレンダリングします。
このアプローチは、APIリクエスト用に個別のハンドラーを作成する必要がないという点で、他のフレームワーク(Django-pistonなど)とは異なります。また、既存のビューロジックを再利用し、通常のビューのようにフォーム検証などを使用し続けることもできます。
このプロジェクトがあなたに役立つかどうかはわかりませんが、リンクを送信してもほとんど問題はありません。 http://opensource.washingtontimes.com/projects/Django-apibuilder/ から入手できるDjango-apibuilderを見てください。おそらくそれは役に立つでしょうか?
/ジェスパー
これをご覧ください RestifyDjango 。
https://github.com/RueLaLa/savory-pie
Savory Pieは、DjangoをサポートするRESTフレームワークです。
Django Rest Framework(DRF)を見て、これをいじって、それが要件に合っているかどうかを確認することをお勧めします。DRFをお勧めする理由は、 GenericAPIViewクラス、Mixinクラス、Mixed in Genericビューの使用APIエンドポイントを作成し、コードベースを簡潔かつ簡潔に保つために、試行済みのテスト済みのデザインパターンを簡単に利用できます。DRYコードを記述するときは常に素晴らしいAPIビューは文字通り2〜3行です。
このチュートリアルをチェックアウトできます http://programmathics.com/programming/python/Django-rest-framework-setup/ 環境のセットアップからRESTful APIのさまざまな作成方法までDjango restフレームワークを使用します。
免責事項:私はそのウェブサイトの作成者です。