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
Prompt string // from comments, used in AI assistant
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.