jub0bs/cors:一个用于 Go 的更好的 CORS 中间件库

主要观点:作者发布了新的 Go 语言 CORS 中间件库jub0bs/cors,相比更流行的rs/cors有诸多优势,包括更简单的 API、更好的文档、广泛的配置验证、有用的调试模式和更强的性能保证等,并提供了迁移指南,还反思了其前身jub0bs/fcors的不足及为何开发jub0bs/cors
关键信息

  • jub0bs/cors的优势:

    • API 更简单,配置方式单一且易理解,方便自动补全。
    • 文档更精确有用,包含清晰示例,还针对新的路由模式进行了说明。
    • 进行广泛的配置验证,能防止创建功能失调或不安全的 CORS 中间件。
    • 有调试模式,可在调试 CORS 问题时提供更多有用信息,且调试模式可动态切换。
    • 性能更稳定,在应对恶意请求时不会像rs/cors那样导致内存过度分配。
  • 迁移指南:安装时运行go get github.com/jub0bs/corsgo mod tidy;配置结构体和字段名不同;创建和应用中间件的函数名不同,jub0bs/corsNewMiddleware会返回错误;默认配置无默认值,需根据原rs/cors的配置进行调整。
  • jub0bs/fcors的不足及开发jub0bs/cors的原因:虽受好评但采用有限,部分设计决策有争议,且在rs/cors的改进上受限,所以开发新库以实现更理想的 CORS 中间件。
    重要细节
  • rs/cors存在一些问题,如配置验证不足、默认配置可能不安全、部分设计决策有争议等。
  • jub0bs/cors的调试模式可通过SetDebug方法开启,且该方法是线程安全的,可在服务器运行时动态切换。
  • 迁移时要注意函数名、结构体和字段名的变化,以及默认配置的调整。
  • jub0bs/fcors虽受关注但采用有限,作者以此为基础开发了jub0bs/cors
阅读 50
0 条评论