def is_middleware(func):
"""
test whether it is a middleware
:return: Boolean
"""
args = list(inspect.signature(func).parameters.items())
# if not inspect.isawaitable(func):
# raise UnknownMiddlewareException("middleware {} should be awaitable".format(func.__name__))
if len(args) != 3:
raise UnknownMiddlewareException("middleware {} should has 3 params named req, res and next".format(func.__name__))
if args[0][0] != 'req':
raise UnknownMiddlewareException("the first param's name of middleware {} should be req".format(func.__name__))
if args[1][0] != 'res':
raise UnknownMiddlewareException("the second param's name of middleware {} should be res".format(func.__name__))
if args[2][0] != 'next':
raise UnknownMiddlewareException("the third param's name of middleware {} should be next".format(func.__name__))
return True
评论列表
文章目录