Documentation ¶
Overview ¶
Package parse is parsed proto file to struct
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetSourceImportPkg ¶
GetSourceImportPkg get source import package
Types ¶
type Field ¶
type Field struct { Name string // field name FieldType string // field type Comment string // field comment }
Field message field
type HTTPPbService ¶
type HTTPPbService struct { Name string // Greeter LowerName string // greeter first character to lower Methods []*RPCMethod // service methods UniqueMethods []*RPCMethod ImportPkgMap map[string]string // [userV1]:[userV1 "user/api/user/v1"] }
HTTPPbService http service fields
func ParseHTTPPbServices ¶
func ParseHTTPPbServices(file *protogen.File) []*HTTPPbService
ParseHTTPPbServices parse protobuf services
type HTTPPbServices ¶
type HTTPPbServices []*HTTPPbService
func (HTTPPbServices) MergeImportPkgPath ¶
func (services HTTPPbServices) MergeImportPkgPath() string
MergeImportPkgPath merge import package path
type PbService ¶
type PbService struct { Name string // Greeter LowerName string // greeter first character to lower Methods []*ServiceMethod // service methods CutServiceName string // GreeterService --> Greeter LowerCutServiceName string // GreeterService --> greeter ImportPkgMap map[string]string // e.g. [userV1]:[userV1 "user/api/user/v1"] ProtoFileDir string // e.g. api/user/v1 ProtoPkgName string // e.g. userV1 ModuleName string }
PbService service fields
func GetServices ¶
GetServices parse protobuf services
type RPCMethod ¶
type RPCMethod struct { Name string // SayHello Num int // one rpc RPCMethod can correspond to multiple http requests Request string // SayHelloReq Reply string // SayHelloResp InvokeType int // 0:unary, 1: client-side streaming, 2: server-side streaming, 3: bidirectional streaming // http_rule Path string // rule Method string // HTTP Method Body string ResponseBody string CustomKind string Selector string // if Selector is [ctx], and IsPassGinContext is true // if true, pass gin.Context to the rpc method IsPassGinContext bool // if Selector is [no_bind], IsPassGinContext and IsPassGinContext are both true // if true, ignore c.ShouldBindXXX for this method, you must use c.ShouldBindXXX() in rpc method IsIgnoreShouldBind bool RequestImportPkgName string // e.g. empty or userV1 ReplyImportPkgName string // e.g. empty or userV1 ProtoSelfPkgPath string // e.g. "module/api/user/v1" ImportPkgPaths map[string]struct{} // exclude ProtoSelfPkgPath }
RPCMethod describes a rpc method
func GetMethods ¶
GetMethods get rpc method descriptions
func (*RPCMethod) HandlerName ¶
HandlerName for gin handler name
func (*RPCMethod) HasPathParams ¶
HasPathParams whether to include routing parameters
func (*RPCMethod) InitPathParams ¶
func (m *RPCMethod) InitPathParams()
InitPathParams conversion parameter routing {xx} --> :xx
type ServiceMethod ¶
type ServiceMethod struct { MethodName string // Create Request string // CreateRequest RequestFields []*Field Reply string // CreateReply ReplyFields []*Field Comment string // e.g. Create a record InvokeType int // 0:unary, 1: client-side streaming, 2: server-side streaming, 3: bidirectional streaming ServiceName string // Greeter LowerServiceName string // greeter first character to lower LowerCutServiceName string // GreeterService --> greeter // http_rule Path string // rule Method string // HTTP Method Body string IsPassGinContext bool IsIgnoreShouldBind bool RequestImportPkgName string // e.g. userV1 ReplyImportPkgName string // e.g. userV1 ProtoPkgName string // e.g. userV1 }
ServiceMethod RPCMethod fields
Click to show internal directories.
Click to hide internal directories.