web-dev-qa-db-ja.com

DjangoおよびRestful API

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を使用することで、基本的には長い間実行します。

特にこの決定に対処した人々に、私にあなたの最善のアドバイスを提供してください。

58
gsiegman

最近リリースされたDjango-pistonは、適切なREST Djangoのインターフェースを作成するのに最適なソリューションです。 Django-piston

:Django-ピストンはもはやメンテナンスされていないようです(参照下のコメント)

18
gsiegman

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サービスなど)、さらにテスト用のサンドボックスを提供します。とても便利。

リンク: http://Django-rest-framework.org/

41
Sun Liwen

Django-tastypie はそれを行うための良い方法です。彼らのスローガン:「Django 2010年以降のアプリ)のためのおいしいAPIの作成」はとても快適です;)

9
guerrerocarlos

Django-dynamicresponse を見ることができます。これはREST JSONを使用したAPIをDjangoアプリケーションに追加するための軽量フレームワークです。

既存のDjangoアプリにAPIサポートを追加するには最小限の変更が必要です。また、新しいプロジェクトの最初からAPIを簡単にビルドできます。

基本的に、JSONをrequest.POSTに解析するためのミドルウェアサポートに加えて、返されたコンテキストをJSONにシリアル化するか、リクエストタイプに基づいて条件付きでテンプレート/リダイレクトをレンダリングします。

このアプローチは、APIリクエスト用に個別のハンドラーを作成する必要がないという点で、他のフレームワーク(Django-pistonなど)とは異なります。また、既存のビューロジックを再利用し、通常のビューのようにフォーム検証などを使用し続けることもできます。

5
chrismi

このプロジェクトがあなたに役立つかどうかはわかりませんが、リンクを送信してもほとんど問題はありません。 http://opensource.washingtontimes.com/projects/Django-apibuilder/ から入手できるDjango-apibuilderを見てください。おそらくそれは役に立つでしょうか?

/ジェスパー

4

これをご覧ください RestifyDjango

多少関連しているのはDjango XML-RPC および JSON-RPC です。

0
Soviut

https://github.com/RueLaLa/savory-pie

Savory Pieは、DjangoをサポートするRESTフレームワークです。

0
Mike Milkin

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フレームワークを使用します。

免責事項:私はそのウェブサイトの作成者です。

0
SeekingAlpha