IT技术博客大学习 共学习 共进步

标签:Gin

共 2 篇相关文章

IT 累计浏览 2

Gin + go:embed 实现静态资源嵌入

本文介绍了如何利用 Go 1.16 引入的 `go:embed` 特性,将前端静态资源文件在编译时嵌入 Go 程序,从而构建单文件部署的 Web 服务。通过声明 `//go:embed` 指令,可将指定目录或文件打包为 `embed.FS` 虚拟文件系统。结合 Gin 框架,开发者可以使用 `http.FS()` 包装该文件系统,并通过 `StaticFS` 或 `NoRoute` 方法将其作为静态资源提供。特别是利用 `NoRoute` 回调,可以在未匹配到 API 路由时自动将请求转发至静态文件服务器,从而省略路径前缀,实现 API 接口与静态资源的统一部署。这种方式简化了发布流程,并避免了跨域问题。

IT 累计浏览 110

让 AI 把我的 PHP 博客重写成 Go

作者尝试将一个运行近20年的古老PHP博客系统重构为Go语言。项目启用了Claude Code的Superpowers插件,通过结构化问答明确了技术选型:采用Go的Gin框架、GORM作为ORM,并构建Vue 3 SPA前端,保持与原MySQL数据库100%兼容。AI助手在确认需求后,自动生成了包含项目结构、API设计等详细规划文档,并利用子代理驱动开发模式执行了约22个开发任务,最终生成一个约35MB的单文件可执行程序,集成了前端SPA。 实现过程并非一帆风顺,主要挑战在于处理历史遗留数据。最复杂的是对UBB标记语法的解析与渲染,因内容已含HTML实体转义且标签存在嵌套,作者编写了34个测试用例才覆盖所有边界情况。此外,需为三代不同的旧URL格式实现301重定向以保持外链有效,并调整了附件链接的解析逻辑以适配反向代理路径。数据库中的标签词频统计也因数据陈旧而改为通过关联查询实时计算。 最终项目产出包括约2800行Go后端代码和2000行Vue前端代码,实现了完整的REST API、JWT认证、防盗链等40余个端点。作者评价整个过程耗时约两三小时,主要负责需求反馈与测试,AI则负责编码、构建与部署,认为这种人机协作模式展现了AI在复杂工程任务中的实用潜力。