いくつかの残りのインターフェイスを追加したいdjangoアプリケーションがあります。http://code.google.com/p/django-rest-interface/を見たことがありますが、かなり単純化されているようです。たとえば、セキュリティを強化する方法がないようです。残りのインターフェイスを介して人々が表示および操作できるものを制限するにはどうすればよいですか? 通常、私はこの種のロジックを自分の見解に入れます。これは適切な場所ですか、それともロジックをモデルに移動する必要がありますか? あるいは、より良いライブラリがありますか、それとも自分で展開する必要がありますか?
4 に答える
セキュリティが主な関心事である場合は、 django-pistonhttp ://bitbucket.org/jespern/django-piston/wiki/Homeアプリケーションの使用を検討します。
私は過去にdjango-rest-interfaceを使用しましたが、その信頼性は高く、シンプルでありながら非常に強力ですが、django-pistonは今後さらに柔軟になるようです。
そうですね、一見すると へのauthentication
パラメータがありますCollection
。(この例を参照してください: authentication.py )
第二に、(Django にはまだありませんが) CSRF/XSRF フォーム チェックを行うミドルウェアが存在するはずです。(ああ、あるようです。) また、urls.py でlogin_required
およびpermission_required
デコレータを使用できるはずです。
Authentication パラメーターを使用しても、ユーザーができることを細かく制御することはできません。Django-REST インターフェースの現在の実装ではユーザー情報が追跡されないため、この情報を使用してきめ細かい承認チェックを行うことはできません。
問題 #32を参照してください。
ただし、いくつかの機能を追加するために拡張するのは比較的簡単です。機能を追加するために多くのサブクラスを使用します。
ただし、ログイン情報でリクエストを更新するのは、Django では注意が必要です。そうではなく、コレクションに情報を残しています。
現時点では、パッチとサブクラスの間で、私が作成したものは、独自の RESTful ビュー関数を展開するのと同じくらい大きいと見積もっています。
ただし、Django-REST は HTTP ダイジェスト認証を適切かつ適切に処理します。私のDjangoビュー関数のために、それらのものをある種のデコレータに置き換えることを楽しみにしていません。
[ソース フォージ プロジェクトを開いて、クリーンな代替案を作成する必要があるのではないでしょうか?]
django-rest-framework を見てください。tastypie からこの新しいフレームワークに移行したところです。
http://django-rest-framework.org/
特にクラスベースのビューとブラウズ可能な API! その他多くの利点 (画像のアップロードなど)