如何在到达Django中的视图集之前记录所有REST API请求?

时间:2016-05-30 10:57:35

标签: django python-2.7 django-rest-framework

我希望能够记录到达django rest框架的所有REST请求。我也想记录API调用的响应。 在哪里可以定义记录所有REST API请求和响应的函数?

2 个答案:

答案 0 :(得分:1)

你可以通过django middleware来做到这一点。将有两个方法process_response和process_request,您可以在其中记录您想要的所有数据。

class ProfileMiddleware(object):

  def process_request(self, request):
    # do your logging here

  def process_response(self, request, response):
    # do your logging here

但这会记录所有请求,而不仅仅是api。如果你只想记录api,你可以在这个方法中轻松检查url,例如/ api和基于此的日志信息

答案 1 :(得分:0)

这取决于您希望如何记录信息以及如何构建API。

对于简单的事情,请尝试查看logging

您的API必须对查询进行某种输入,因此请将其包装在日志中

callAPI(query)    
logging.info(query)

与您的API返回相同

return APIJSONanswer
logging.info(APIJSONanswer)