djangorestframework(DRF: http ://django-rest-framework.org/ )ビューを使用して、HTTPSPUTリクエストをRESTfulAPIDjangoWebサービスに送信しようとしています。Djangoのクロスサイトリクエストフォージェリ(CSRF)保護のため、これを機能させることができません。
PUT要求は、認証されていないユーザーがリソースを追加できるようにすることを目的としています。
私が検討/試行したこと:
- CSRFの無効化-受け入れられません。APIは、非APIサービスと同じDjangoインスタンスで実行されます。CSRF保護を無効にすることはリスクが大きすぎます。
X-Requested-With: XMLHttpRequest
PUTリクエストのヘッダーを使用します(私はクライアントを制御します)。動作しません-それでもCSRFエラーが発生します。@crsf_exempt
PUTビューでデコレータを使用します。できれば、フレームワークはビューではなくクラスを定義します。
私の現在の最善のオプションは、DRFのViewクラスを使用せずに自分でPUTビューを作成することです。@crsf_exempt
これで、デコレータを正常に使用できます。
DRFのViewクラスを使用したいのですが、その方法がわかりません。あなたはできる?