v1.1.0 v1.0.0 · 稳定根 GA · 扩展模块按成熟度标注 查看发布策略 →

迁移

迁移到 Plumego。从 Gin、Echo 或 Chi 出发。

每条迁移路径的成本和模式各不相同。Chi 是摩擦最低的路径;Gin 和 Echo 需要改写 handler。选择你的源框架,看看哪些需要改变,哪些保持不变。

来自 Gin
中迁移成本 每个服务 1–3 天

func(c *gin.Context) → func(w, r)

Handler

所有 handler 需从 gin.Context 改写。路由语法保持不变。

中间件

中间件需从 gin.HandlerFunc 适配为 func(http.Handler) http.Handler。

路由

/foo/:id 可以直接映射。Group 结构保持不变。

你能得到什么
  • 无自定义 context 类型
  • stdlib 中间件无需适配器即可使用
  • 内核零传递依赖
来自 Echo
中迁移成本 每个服务 1–3 天

func(c echo.Context) error → func(w, r)

Handler

所有 handler 需从 echo.Context 改写。error return 惯用法替换为 contract.WriteError。

中间件

Echo 中间件需要适配。Logger、CORS 和 recover 都有 Plumego 对应实现。

路由

路由语法相似。Echo group API 可直接映射到 router.Group。

你能得到什么
  • 无自定义 context 类型
  • 显式错误模型
  • 内核零传递依赖
来自 Chi
低迁移成本 数小时到一天

相同的 handler 签名——改动极少

Handler

Chi 使用 func(w, r)——与 Plumego 相同。Handler 代码无需修改。

中间件

Chi 中间件为 func(http.Handler) http.Handler——兼容。现有中间件通常可直接使用。

路由

路由语法相似。chi.URLParam(r, "id") 替换为 router.PathParam(r, "id")。

你能得到什么
  • handler 代码不变
  • 现有 stdlib 中间件可复用
  • 学习曲线更低

还没准备好一次性迁移所有内容?

阅读渐进式采用指南,了解分阶段方案——先迁移稳定根,仅在需要时引入扩展,无需大爆炸式重写。