一个供前端使用的测试工具,也可以作为中间件使用
一个基于 Gin Web Framework 的轻量级调试服务器,用于捕获和打印所有 HTTP 请求的详细信息(Headers、Cookies、Body),方便开发调试和接口分析。
- 🔍 完整请求日志:自动打印每个请求的 Method、URL、ClientIP、Headers、Cookies 和 Body
- 📝 Body 截断显示:超过 500 字符的请求体自动截断,避免控制台刷屏
- 🔄 Body 无损传递:读取 Body 后重新封装,确保后续 Handler 能正常读取
- 🌐 CORS 跨域支持:内置跨域配置,支持前端开发调试
- 📁 静态文件服务:提供本地静态文件托管
- 🎯 零侵入设计:通过中间件实现,不影响业务逻辑
- Go 1.18+
- 安装了 Gin 框架
go get github.com/gin-gonic/gin
go get github.com/gin-contrib/corsgo run main.go服务将启动在 http://127.0.0.1:8081
.
├── main.go # 主程序入口
├── static/ # 静态文件目录(可选)
└── README.md # 项目说明
编辑 main() 函数中的以下代码:
// 修改启动地址
fmt.Println("服务器启动于: http://127.0.0.1:8081 ")
// 启动服务器
if err := r.Run("127.0.0.1:8081"); err != nil {
panic(err)
}当前配置允许所有来源(*),生产环境建议修改为具体域名:
config.AllowOrigins = []string{"http://localhost:3000", "https://yourdomain.com"}当前配置将项目根目录(./)作为静态文件服务根路径:
r.Static("", "./")访问 http://localhost:8081/index.html 将自动寻找 ./index.html 文件。
启动服务后,任何 HTTP 请求都会在控制台输出如下格式的日志:
========== 收到新请求 ==========
Method: POST
URL: /test-api
Remote Addr: 127.0.0.1
--- Request Headers ---
Content-Type: application/json
User-Agent: Mozilla/5.0...
Cookie: session_id=abc123; user=john
--- Request Body ---
{"name": "test", "value": 123}
============================
服务内置了一个测试接口 /test-api:
curl -X POST http://127.0.0.1:8081/test-api \
-H "Content-Type: application/json" \
-d '{"message": "hello"}'将文件放在项目根目录,通过浏览器直接访问:
http://127.0.0.1:8081/your-file.html
http://127.0.0.1:8081/images/logo.png
- 生产环境:此中间件主要用于开发调试,生产环境建议关闭或降低日志级别
- 大文件上传:上传大文件时,Body 日志可能会占用大量内存和输出空间
- 二进制数据:图片、文件等二进制 Body 会尝试以字符串形式打印,可能出现乱码
如需记录响应数据,可扩展中间件:
// 在 c.Next() 后添加响应记录
c.Next()
fmt.Printf("Response Status: %d\n", c.Writer.Status())将 fmt.Println 替换为日志库(如 logrus 或 zap),并配置输出到文件。