Documentation
¶
Overview ¶
Package parser is parsed proto file to struct
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetProtoFileDir ¶
func GetProtoPkgName ¶
Types ¶
type Field ¶
type Field struct {
Name string // field name
GoType string // field go type
GoTypeCrossPkg string // field go type cross package
Comment string // field comment
FieldType string // field type
IsList bool // is list
IsMap bool // is map
ImportPkgName string // e.g. anypb
ImportPkgPath string // import path e.g. google.golang.org/protobuf/types/known/anypb
}
Field message field
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"`
FieldImportPkgMap map[string]string // e.g. `userV1`:`userV1 "user/api/user/v1"`
ProtoFileDir string // e.g. api/user/v1
ProtoPkgName string // e.g. userV1
}
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 (*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.