主要观点:作者发布了新的 Go 语言 CORS 中间件库jub0bs/cors,相比更流行的rs/cors有诸多优势,包括更简单的 API、更好的文档、广泛的配置验证、有用的调试模式和更强的性能保证等,并提供了迁移指南,还反思了其前身jub0bs/fcors的不足及为何开发jub0bs/cors。
关键信息:
jub0bs/cors的优势:
- API 更简单,配置方式单一且易理解,方便自动补全。
- 文档更精确有用,包含清晰示例,还针对新的路由模式进行了说明。
- 进行广泛的配置验证,能防止创建功能失调或不安全的 CORS 中间件。
- 有调试模式,可在调试 CORS 问题时提供更多有用信息,且调试模式可动态切换。
- 性能更稳定,在应对恶意请求时不会像rs/cors那样导致内存过度分配。
- 迁移指南:安装时运行
go get github.com/jub0bs/cors
并go mod tidy
;配置结构体和字段名不同;创建和应用中间件的函数名不同,jub0bs/cors的NewMiddleware
会返回错误;默认配置无默认值,需根据原rs/cors的配置进行调整。 - jub0bs/fcors的不足及开发jub0bs/cors的原因:虽受好评但采用有限,部分设计决策有争议,且在rs/cors的改进上受限,所以开发新库以实现更理想的 CORS 中间件。
重要细节: - rs/cors存在一些问题,如配置验证不足、默认配置可能不安全、部分设计决策有争议等。
- jub0bs/cors的调试模式可通过
SetDebug
方法开启,且该方法是线程安全的,可在服务器运行时动态切换。 - 迁移时要注意函数名、结构体和字段名的变化,以及默认配置的调整。
- jub0bs/fcors虽受关注但采用有限,作者以此为基础开发了jub0bs/cors。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。