私はdjangoでtastypieを使用してREST API要求を処理しました。これまでにGET/POSTリクエストを行うときは、デフォルトでメソッドを脱水化します。しかし、DELETE/PUTリクエストでは、tastypieがそれを処理するメソッドがないため、リクエスト情報を記録する方法はありません。tastypie djangoですべてのリクエストを記録する方法
class ProjectResource(ModelResource):
allowed_methods = ['get', 'put', 'post', 'delete']
resource_name = 'project'
queryset = Project.objects.all()
validation = FormValidation(form_class=ProjectForm)
always_return_data = True
filtering = {
'id': ALL,
'slug': ALL,
}
def dehydrate(self, bundle):
import pdb;pdb.set_trace() #--> get/post request hit this function
logger.log('app.main','debug', 'Project info', bundle)
bundle.data['name'] = cgi.escape(bundle.obj.name)
return bundle
tastypie.resourceモジュールでModelResourceをオーバーライドする機能はありますか?すべての要求に対してバンドルデータを取得してから処理する前にロガーに渡します。
リクエストがまだルーティングされていない場合、WSGIミドルウェアレベルでログに記録できませんか?または、[Djangoミドルウェア](https://docs.djangoproject.com/en/1.10/topics/http/middleware/)レベル?必要なのはリクエストだけで、API URLの外観(例: '.startswith( '/ api /')')があれば十分でしょう。 – 9000