我正在构建一个定制的Prometheus中间件类来进行一些监视,我想在中间件中为给定的请求构造或检索Django Rest FrameworkRequest
对象,这样我就可以在度量中捕获request.version
。在
但是,我下面代码中的request
参数似乎是一个WSGIRequest
对象。是否可以在中间件中识别DRFHttpRequest
对象?下面的代码。。。在
if django.VERSION >= (1, 10, 0):
from django.utils.deprecation import MiddlewareMixin
else:
MiddlewareMixin = object
class CustomPrometheusAfterMiddleware(MiddlewareMixin):
def process_response(self, request, response):
# Do some cool things
return response
如果您check the source code,Django的
HttpRequest
对象被包装在views.APIView.dispatch
中的DRF的Request
对象中,所以我认为您必须经过很多步骤才能得到它。最好的办法可能是修补APIView
来存储您在实际请求(Django的HttpRequest
或的子类)或响应FWIW上所追求的信息,这样您就可以将它们放回中间件中。在相关问题 更多 >
编程相关推荐