go中间件
func VerifyHeader() gin.HandlerFunc {
return func(c *gin.Context) {
header := c.Request.Header.Get("token")
if header == "" {
c.JSON(200, gin.H{
"code": 1000,
"msg": "Not logged in",
})
return
}
}
}
func main() {
r := gin.Default()
group := r.Group("/api/asong",VerifyHeader())
{
group.GET("/ping", func(context *gin.Context) {
context.JSON(200,gin.H{
"message": "pong",
})
})
}
r.Run()
}
python装饰器
def metric(fn):
@functools.wraps(fn)
def timer(*arag, **kw):
start = time.time()
num = fn(*arag, **kw)
end = time.time()
times = (end - start) * 1000
print('%s executed in %s ms' % (fn.__name__, times))
return num
return timer
@metric
def Sum(x, y):
time.sleep(0.0012)
return x + y;
Sum(10, 20)