parse

package
v1.1.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 24, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package parse is parsed proto file to struct

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetImportPkg

func GetImportPkg(services []*PbService) []byte

GetImportPkg get import package

func GetSourceImportPkg

func GetSourceImportPkg(services []*PbService) []byte

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

func (Field) GoTypeZero

func (r Field) GoTypeZero() string

GoTypeZero default zero value for type

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

func GetServices(file *protogen.File, moduleName string) []*PbService

GetServices parse protobuf services

func (*PbService) RandNumber

func (s *PbService) RandNumber() int

RandNumber rand number 1~100

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

func GetMethods(m *protogen.Method, protoSelfPkgPath string) []*RPCMethod

GetMethods get rpc method descriptions

func (*RPCMethod) HandlerName

func (m *RPCMethod) HandlerName() string

HandlerName for gin handler name

func (*RPCMethod) HasPathParams

func (m *RPCMethod) HasPathParams() bool

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

func (*ServiceMethod) AddOne

func (t *ServiceMethod) AddOne(i int) int

AddOne counter

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL