首页 > 其他分享 >【小测试】读取*.proto文件,再读取service中method的注释

【小测试】读取*.proto文件,再读取service中method的注释

时间:2022-09-23 20:24:05浏览次数:57  
标签:f1 读取 err proto 注释 service method

想要在proto3中定义service,及其service的method。然后在method后面加上特殊注释,通过这个特殊注释来动态生成代码。

下面是测试代码:


import (
    "github.com/golang/protobuf/protoc-gen-go/descriptor"
     "github.com/jhump/protoreflect/desc/protoparse"
)

func parseProto(filePath string) {
       p := protoparse.Parser{
		IncludeSourceCodeInfo: true,
	}
	fds, err := p.ParseFiles(filePath)
	if err != nil {
		log.Errorf("parse error:%+v", err)
		return
	}
        f1 := fds[0]
	services := f1.GetServices()
	s1 := services[0]
	methods := s1.GetMethods()
	m1 := methods[0]
       log.Println( m1.GetSourceInfo().GetLeadingComments() )  // 方法的注释
}

感谢yif同学提供指导。
下次试试用 option 标签获取元数据。

标签:f1,读取,err,proto,注释,service,method
From: https://www.cnblogs.com/ahfuzhang/p/16724118.html

相关文章