Skip to content

09 Go Eino AI应用开发实战 | Hertz Web 框架搭建

声明:本AI应用开发系列教程首发在同名公众号:王中阳,未经授权禁止转载。

Hertz Web 框架作为 AI Interview Agent 平台的核心支柱,提供高性能的 HTTP 路由、中间件编排和请求处理能力。本指南涵盖 Hertz 在项目架构中的完整设置和配置。

框架初始化

Hertz 服务器在主应用程序入口点初始化,通过包含配置加载、数据库连接和中间件注册的完整设置序列 [main.go#L101-L175]。

服务器初始化遵循以下关键模式:

go
// 使用配置中的主机和端口初始化 Hertz 服务器 s := server.Default(server.WithHostPorts(fmt.Sprintf("%s:%d", cfg.Host, cfg.Port)))

中间件架构

Hertz 实现了分层中间件架构来处理横切关注点:

恢复中间件

恢复中间件捕获 panic 并防止服务器崩溃,提供结构化错误响应 [recovery.go#L15-L35]:

go
func Recovery() app.HandlerFunc {     return func(ctx context.Context, c *app.RequestContext) {         defer func() {             if r := recover(); r != nil {                 stack := debug.Stack()                 log.Printf("[PANIC] Recovered: %v\n%s", r, stack)                 // 返回结构化错误响应             }         }()         c.Next(ctx)     } }

CORS 配置

全局 CORS 中间件通过全面的头部配置处理跨域请求 [main.go#L113-L127]:

Header

Value

Purpose

Access-Control-Allow-Origin

*

允许所有来源

Access-Control-Allow-Methods

GET, POST, PUT, DELETE, OPTIONS

允许的 HTTP 方法

Access-Control-Allow-Headers