Documentation ¶
Index ¶
- type Binding
- type Body
- type Enum
- type Field
- type FieldPath
- type FieldPathComponent
- type File
- type GoPackage
- type Message
- type Method
- type Parameter
- type Registry
- func (r *Registry) AddPkgMap(file, protoPkg string)
- func (r *Registry) GetAllFQENs() []string
- func (r *Registry) GetAllFQMNs() []string
- func (r *Registry) Load(req *plugin.CodeGeneratorRequest) error
- func (r *Registry) LookupEnum(location, name string) (*Enum, error)
- func (r *Registry) LookupFile(name string) (*File, error)
- func (r *Registry) LookupMsg(location, name string) (*Message, error)
- func (r *Registry) ReserveGoPackageAlias(alias, pkgpath string) error
- func (r *Registry) SetPrefix(prefix string)
- type Service
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Binding ¶
type Binding struct { // Method is the method which the endpoint is bound to. Method *Method // Index is a zero-origin index of the binding in the target method Index int // PathTmpl is path template where this method is mapped to. PathTmpl httprule.Template // HTTPMethod is the HTTP method which this method is mapped to. HTTPMethod string // PathParams is the list of parameters provided in HTTP request paths. PathParams []Parameter // Body describes parameters provided in HTTP request body. Body *Body }
Binding describes how an HTTP endpoint is bound to a gRPC method.
func (*Binding) ExplicitParams ¶
ExplicitParams returns a list of explicitly bound parameters of "b", i.e. a union of field path for body and field paths for path parameters.
type Body ¶
type Body struct { // FieldPath is a path to a proto field which the request body is mapped to. // The request body is mapped to the request type itself if FieldPath is empty. FieldPath FieldPath }
Body describes a http requtest body to be sent to the method.
type Enum ¶
type Enum struct { // File is the file where the enum is defined File *File // Outers is a list of outer messages if this enum is a nested type. Outers []string *descriptor.EnumDescriptorProto Index int }
Enum describes a protocol buffer enum types
type Field ¶
type Field struct { // Message is the message type which this field belongs to. Message *Message // FieldMessage is the message type of the field. FieldMessage *Message *descriptor.FieldDescriptorProto }
Field wraps descriptor.FieldDescriptorProto for richer features.
type FieldPath ¶
type FieldPath []FieldPathComponent
FieldPath is a path to a field from a request message.
func (FieldPath) IsNestedProto3 ¶
IsNestedProto3 indicates whether the FieldPath is a nested Proto3 path.
type FieldPathComponent ¶
type FieldPathComponent struct { // Name is a name of the proto field which this component corresponds to. // TODO(yugui) is this necessary? Name string // Target is the proto field which this component corresponds to. Target *Field }
FieldPathComponent is a path component in FieldPath
func (FieldPathComponent) LHS ¶
func (c FieldPathComponent) LHS() string
LHS returns a left-hand-side expression in go for this field.
func (FieldPathComponent) RHS ¶
func (c FieldPathComponent) RHS() string
RHS returns a right-hand-side expression in go for this field.
type File ¶
type File struct { *descriptor.FileDescriptorProto // GoPkg is the go package of the go file generated from this file.. GoPkg GoPackage // Messages is the list of messages defined in this file. Messages []*Message // Enums is the list of enums defined in this file. Enums []*Enum // Services is the list of services defined in this file. Services []*Service }
File wraps descriptor.FileDescriptorProto for richer features.
type GoPackage ¶
type GoPackage struct { // Path is the package path to the package. Path string // Name is the package name of the package Name string // Alias is an alias of the package unique within the current invokation of grpc-gateway generator. Alias string }
GoPackage represents a golang package
type Message ¶
type Message struct { // File is the file where the message is defined File *File // Outers is a list of outer messages if this message is a nested type. Outers []string *descriptor.DescriptorProto Fields []*Field // Index is proto path index of this message in File. Index int }
Message describes a protocol buffer message types
type Method ¶
type Method struct { // Service is the service which this method belongs to. Service *Service *descriptor.MethodDescriptorProto // RequestType is the message type of requests to this method. RequestType *Message // ResponseType is the message type of responses from this method. ResponseType *Message Bindings []*Binding }
Method wraps descriptor.MethodDescriptorProto for richer features.
type Parameter ¶
type Parameter struct { // FieldPath is a path to a proto field which this parameter is mapped to. FieldPath // Target is the proto field which this parameter is mapped to. Target *Field // Method is the method which this parameter is used for. Method *Method }
Parameter is a parameter provided in http requests
func (Parameter) ConvertFuncExpr ¶
ConvertFuncExpr returns a go expression of a converter function. The converter function converts a string into a value for the parameter.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry is a registry of information extracted from plugin.CodeGeneratorRequest.
func (*Registry) GetAllFQENs ¶
GetAllFQENs returns a list of all FQENs
func (*Registry) GetAllFQMNs ¶
GetAllFQMNs returns a list of all FQMNs
func (*Registry) Load ¶
func (r *Registry) Load(req *plugin.CodeGeneratorRequest) error
Load loads definitions of services, methods, messages, enumerations and fields from "req".
func (*Registry) LookupEnum ¶
LookupEnum looks up a enum type by "name". It tries to resolve "name" from "location" if "name" is a relative enum name.
func (*Registry) LookupFile ¶
LookupFile looks up a file by name.
func (*Registry) LookupMsg ¶
LookupMsg looks up a message type by "name". It tries to resolve "name" from "location" if "name" is a relative message name.
func (*Registry) ReserveGoPackageAlias ¶
ReserveGoPackageAlias reserves the unique alias of go package. If succeeded, the alias will be never used for other packages in generated go files. If failed, the alias is already taken by another package, so you need to use another alias for the package in your go files.
type Service ¶
type Service struct { // File is the file where this service is defined. File *File *descriptor.ServiceDescriptorProto // Methods is the list of methods defined in this service. Methods []*Method }
Service wraps descriptor.ServiceDescriptorProto for richer features.