mirror of
https://github.com/go-kratos/kratos.git
synced 2026-05-22 10:15:24 +02:00
fix: cmd http embed message path generate (#1561)
fix: cmd http embed message path generate (#1561)
This commit is contained in:
@@ -160,16 +160,22 @@ func buildMethodDesc(g *protogen.GeneratedFile, m *protogen.Method, method, path
|
||||
vars := buildPathVars(m, path)
|
||||
fields := m.Input.Desc.Fields()
|
||||
for _, v := range vars {
|
||||
fd := fields.ByName(protoreflect.Name(v))
|
||||
for _, field := range strings.Split(v, ".") {
|
||||
if strings.TrimSpace(field) == "" {
|
||||
continue
|
||||
}
|
||||
fd := fields.ByName(protoreflect.Name(field))
|
||||
if fd == nil {
|
||||
fmt.Fprintf(os.Stderr, "\u001B[31mERROR\u001B[m: The corresponding field '%s' declaration in message could not be found in '%s'\n", v, path)
|
||||
os.Exit(2)
|
||||
}
|
||||
if fd.IsMap() {
|
||||
fmt.Fprintf(os.Stderr, "\u001B[31mWARN\u001B[m: The field in path:'%s' shouldn't be a map.\n", v)
|
||||
}
|
||||
if fd.IsList() {
|
||||
} else if fd.IsList() {
|
||||
fmt.Fprintf(os.Stderr, "\u001B[31mWARN\u001B[m: The field in path:'%s' shouldn't be a list.\n", v)
|
||||
} else if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind {
|
||||
fields = fd.Message().Fields()
|
||||
}
|
||||
}
|
||||
}
|
||||
return &methodDesc{
|
||||
|
||||
Reference in New Issue
Block a user