当前位置: 首页 > 科技观察

GoFiber框架系列:中间件

时间:2023-03-12 19:21:47 科技观察

大家好,我是polarisxu。中间件(middleware)是Web框架的重要组成部分。通过这种模式,可以方便地扩展框架的功能。目前GoWeb框架提供了Middleware功能,可用的Middleware有很多。Fiber也是如此,官方提供了大量的中间件供用户直接使用。本文先看Fiber中Middleware的定义,然后介绍Fiber中的几种Middleware,最后自己实现一个Middleware。Fiber文档中关于中间件的注释:中间件是一个链接在HTTP请求周期中的函数,它可以访问执行特定操作的上下文(例如,记录每个请求或启用CORS)。01什么是中间件设计用于更改请求或响应的功能称为中间件功能。Next是一个Fiber路由器函数,当被调用时,它会执行与当前路由匹配的下一个函数。可见,中间件其实和Handler是一样的,只是用途不同而已。或者至少签名是一样的,这样才能更好的形成一条链。因此,Fiber中的中间件签名如下:func(ctx*fiber.Ctx)errorFiber没有具体定义中间件类型。另外从fiber.App.Use方法可以看出,中间件和普通的Handlers并没有本质区别。//Useregistersamiddlewareroutethatwillmatchrequests//withtheprovidedprefix(whichisoptionalanddefaultsto"/").////app.Use(func(c*fiber.Ctx)error{//returnc.Next()//})//app.Use("/api",func(c*fiber.Ctx)error{//returnc.Next()//})//app.Use("/api",handler,func(c*fiber.Ctx)error{//returnc.Next()//})////ThismethodwillmatchallHTTPverbs:GET,POST,PUT,HEADetc...func(app*App)Use(args...interface{})Router{varprefixstringvarhandlers[]Handlerfori:=0;i