Skip to content

Conversation

@ibreez3
Copy link
Contributor

@ibreez3 ibreez3 commented Jan 23, 2026

问题描述

在RPC模式下,当在proto文件中指定中间件类型为zrpc时,会直接导致middleware_gen.go文件无法生成,影响代码生成流程。

修复方案

问题根因

生成的middleware_gen.go文件中,RegisterGen方法内不同类型中间件的代码逻辑被混在同一行,导致cmd/jzero/internal/command/gen/genrpc/middleware.go第182行的gosimports.Process调用执行失败。

具体修改

调整模板文件 cmd/jzero/.template/rpc/middle/middleware_gen.go.tplRegisterGen方法的模板内容,通过格式化代码行结构解决代码混行问题:

修改后的模板内容:

func RegisterGen(zrpc *zrpc.RpcServer, gw *gateway.Server) {
	{{- range $v := .HttpMiddlewares}}
	gw.Use({{$v.Name | FirstUpper}}Middleware)
	{{- end}}

	{{- range $v := .ZrpcMiddlewares}}
	zrpc.AddUnaryInterceptors({{$v.Name | FirstUpper}}Middleware)
	zrpc.AddStreamInterceptors({{$v.Name | FirstUpper}}StreamMiddleware)
	{{- end}}
}

@ibreez3 ibreez3 force-pushed the fix/rpc_middleware_gen_tpl branch from ef12738 to fe1c6e7 Compare January 23, 2026 06:34
@jaronnie jaronnie merged commit 8c3b04f into jzero-io:main Jan 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants