主要观点:多年来用第三方包管理 Go 网络应用的中间件,小项目用[alice],大项目用[chi]或[flow]路由器,Go1.22 引入新功能后尝试弃用第三方依赖转用标准库,引出如何在不使用第三方包的情况下组织管理中间件的问题。
关键信息:
- 不用第三方包管理中间件的三种方式:类似 alice 的链式写法、利用 Go1.23 的
slices.Backward
函数创建自己的chain
类型、创建类似 chi 的标准库路由器实现。 - 不用第三方包管理中间件的方式存在的问题,如路由声明重复、不易阅读和维护、容易出错等。
重要细节: - [alice]示例代码展示了如何创建中间件链并在路由中使用。
- 利用
slices.Backward
函数创建的chain
类型的代码及使用方式。 - 标准库路由器实现的
Router
结构体及相关方法,包括Use
添加中间件、Group
创建路由组等。
总结来说,介绍了多种在 Go 中管理中间件的方式及各自的特点和代码实现,探讨了弃用第三方包后管理中间件的解决方案。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。