还在手写 Go HTTP Handler?ogen 让 OpenAPI 直接变类型化代码
还在手写 Go HTTP Handler?这项目让 OpenAPI 直接变代码
做 Go 后端的时候,最烦人的是不是那些几乎不变的样板代码:路由注册、请求参数解析、响应封装、校验逻辑,复制粘贴几次就觉得是在浪费生命。
ogen 就是专门解决这个问题的。它是一个 OpenAPI v3 代码生成器,只针对 Go 生态,而且做得非常“Go 味”:不靠反射,不生成 interface{},输出的是可读性很强的静态类型代码。
为什么值得开发者关注
- 零反射,性能更稳:JSON 编解码、路由、校验全部是代码生成的,没有运行时反射开销,部署和调优都更可控。
- Server 和 Client 一起生成:一份 OpenAPI schema,同时得到服务端接口和类型化客户端,前后端契约更容易对齐。
- 对 oneOf / optional / nullable 支持到位:OpenAPI 里那些 tricky 的字段,ogen 会生成 Optional[T]、Nullable[T] 这类包装类型,帮你规避空指针和歧义。
- OpenTelemetry、SSE 都支持:不是只生成 CRUD 玩具, observability 和事件流场景也能覆盖。
适合谁用
如果你在用 Go 维护中大型 REST API、内部 BFF、或者 OpenAPI-first 的服务端项目,ogen 会明显减少胶水代码。尤其适合团队已经有一份较完整的 OpenAPI 文档、想把它变成可编译产物的场景。
上手方式
安装很简单:go install -v github.com/ogen-go/ogen/cmd/ogen@latest,然后准备一份 OpenAPI schema 直接生成。它也支持 Docker 运行,CI 里集成也不麻烦。
GitHub 地址:https://github.com/ogen-go/ogen
GitHub: https://github.com/ogen-go/ogen
评论区
0 条评论
登录后可评论。