Documentation
¶
Index ¶
- Constants
- Variables
- func FieldMaskFromRequestBody(r io.Reader, msg proto.Message) (*fieldmask.FieldMask, error)
- func HTTPPathPattern(ctx context.Context) (string, bool)
- func HTTPStatusFromCode(code codes.Code) int
- func NewContextWithServerTransportStream(ctx context.Context, s grpc.ServerStream, method string) context.Context
- func NewServerMetadataContext(ctx context.Context, md ServerMetadata) context.Context
- func RPCMethod(ctx context.Context) (string, bool)
- func TransparentHandler(cli grpc.ClientConnInterface, inType, outType protoreflect.MessageType, ...) grpc.StreamHandler
- type AnnotateContextOption
- type Codec
- type CodecJSON
- func (c CodecJSON) Marshal(v any) ([]byte, error)
- func (c CodecJSON) MarshalAppend(b []byte, v any) ([]byte, error)
- func (CodecJSON) Name() string
- func (c CodecJSON) ReadNext(b []byte, r io.Reader, limit int) ([]byte, int, error)
- func (c CodecJSON) Unmarshal(data []byte, v any) error
- func (c CodecJSON) WriteNext(w io.Writer, b []byte) (int, error)
- type CodecProto
- func (c CodecProto) Marshal(v any) ([]byte, error)
- func (c CodecProto) MarshalAppend(b []byte, v any) ([]byte, error)
- func (CodecProto) Name() string
- func (c CodecProto) ReadNext(b []byte, r io.Reader, limit int) ([]byte, int, error)
- func (CodecProto) Unmarshal(data []byte, v any) error
- func (c CodecProto) WriteNext(w io.Writer, b []byte) (int, error)
- type Compressor
- type Gateway
- type GrpcMethod
- type MatchOperation
- type MethodHandler
- type Mux
- func (m *Mux) GetOperation(operation string) *GrpcMethod
- func (m *Mux) GetOperationByName(name string) *GrpcMethod
- func (m *Mux) GetRouteMethods() []RouteOperation
- func (m *Mux) Handler(ctx fiber.Ctx) error
- func (m *Mux) Invoke(ctx context.Context, method string, args, reply any, opts ...grpc.CallOption) error
- func (m *Mux) MatchOperation(method, path string) (r result.Result[*MatchOperation])
- func (m *Mux) NewStream(ctx context.Context, desc *grpc.StreamDesc, method string, ...) (grpc.ClientStream, error)
- func (m *Mux) RegisterProxy(sd *grpc.ServiceDesc, proxy lava.GrpcRouter, cli grpc.ClientConnInterface)
- func (m *Mux) RegisterService(sd *grpc.ServiceDesc, ss any)
- func (m *Mux) ServeHTTP(writer http.ResponseWriter, request *http.Request)
- func (m *Mux) SetRequestDecoder(name protoreflect.FullName, f func(ctx fiber.Ctx, msg proto.Message) error)
- func (m *Mux) SetResponseEncoder(name protoreflect.FullName, f func(ctx fiber.Ctx, msg proto.Message) error)
- func (m *Mux) SetStreamInterceptor(interceptor grpc.StreamServerInterceptor)
- func (m *Mux) SetUnaryInterceptor(interceptor grpc.UnaryServerInterceptor)
- type MuxOption
- type PathFieldVar
- type RouteOperation
- type ServerMetadata
- type ServerTransportStream
- func (s *ServerTransportStream) Header() metadata.MD
- func (s *ServerTransportStream) Method() string
- func (s *ServerTransportStream) SendHeader(md metadata.MD) error
- func (s *ServerTransportStream) SetHeader(md metadata.MD) error
- func (s *ServerTransportStream) SetTrailer(md metadata.MD) error
- func (s *ServerTransportStream) Trailer() metadata.MD
- type StreamDirector
- type StreamHandler
Constants ¶
const MetadataHeaderPrefix = "Grpc-Metadata-"
MetadataHeaderPrefix is the http prefix that represents custom metadata parameters to or from a gRPC call.
const MetadataPrefix = "grpcgateway-"
MetadataPrefix is prepended to permanent HTTP header keys (as specified by the IANA) when added to the gRPC context.
const MetadataTrailerPrefix = "Grpc-Trailer-"
MetadataTrailerPrefix is prepended to gRPC metadata as it is converted to HTTP headers in a response handled by grpc-gateway
Variables ¶
var DefaultContextTimeout = 0 * time.Second
DefaultContextTimeout is used for gRPC call context.WithTimeout whenever a Grpc-Timeout inbound header isn't present. If the value is 0 the sent `context` will not have a timeout.
Functions ¶
func FieldMaskFromRequestBody ¶
FieldMaskFromRequestBody creates a FieldMask printing all complete paths from the JSON body.
func HTTPPathPattern ¶
HTTPPathPattern returns the HTTP path pattern string relating to the HTTP handler, if one exists. The format of the returned string is defined by the google.api.http path template type.
func HTTPStatusFromCode ¶
HTTPStatusFromCode converts a gRPC error code into the corresponding HTTP response status. See: https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto
func NewServerMetadataContext ¶
func NewServerMetadataContext(ctx context.Context, md ServerMetadata) context.Context
NewServerMetadataContext creates a new context with ServerMetadata
func RPCMethod ¶
RPCMethod returns the method string for the server context. The returned string is in the format of "/package.service/method".
func TransparentHandler ¶
func TransparentHandler(cli grpc.ClientConnInterface, inType, outType protoreflect.MessageType, opts ...grpc.CallOption) grpc.StreamHandler
Types ¶
type AnnotateContextOption ¶
func WithHTTPPathPattern ¶
func WithHTTPPathPattern(pattern string) AnnotateContextOption
type Codec ¶
type Codec interface {
encoding.Codec
// MarshalAppend appends the marshaled form of v to b and returns the result.
MarshalAppend([]byte, any) ([]byte, error)
}
Codec defines the interface used to encode and decode messages.
type CodecJSON ¶
type CodecJSON struct {
protojson.MarshalOptions
protojson.UnmarshalOptions
}
CodecJSON is a Codec implementation with protobuf json format.
type CodecProto ¶
type CodecProto struct {
proto.MarshalOptions
}
CodecProto is a Codec implementation with protobuf binary format.
func (CodecProto) MarshalAppend ¶
func (c CodecProto) MarshalAppend(b []byte, v any) ([]byte, error)
func (CodecProto) Name ¶
func (CodecProto) Name() string
Name == "proto" overwritting internal proto codec
type Compressor ¶
type Compressor interface {
encoding.Compressor
}
Compressor is used to compress and decompress messages. Based on grpc/encoding.
type Gateway ¶
type Gateway interface {
grpc.ClientConnInterface
SetUnaryInterceptor(interceptor grpc.UnaryServerInterceptor)
SetStreamInterceptor(interceptor grpc.StreamServerInterceptor)
SetRequestDecoder(protoreflect.FullName, func(ctx fiber.Ctx, msg proto.Message) error)
SetResponseEncoder(protoreflect.FullName, func(ctx fiber.Ctx, msg proto.Message) error)
RegisterService(sd *grpc.ServiceDesc, ss any)
GetOperation(operation string) *GrpcMethod
Handler(fiber.Ctx) error
ServeHTTP(http.ResponseWriter, *http.Request)
GetRouteMethods() []RouteOperation
}
type GrpcMethod ¶
type GrpcMethod struct {
Srv any
SrvDesc *grpc.ServiceDesc
GrpcMethodDesc *grpc.MethodDesc
GrpcStreamDesc *grpc.StreamDesc
MethodDesc protoreflect.MethodDescriptor
GrpcFullMethod string
Meta *lavapbv1.RpcMeta
}
type MatchOperation ¶
type MatchOperation = routertree.MatchOperation
func GetRouterTarget ¶
func GetRouterTarget(mux *Mux, kind, path string) (*MatchOperation, error)
type MethodHandler ¶
type Mux ¶
type Mux struct {
// contains filtered or unexported fields
}
func (*Mux) GetOperation ¶
func (m *Mux) GetOperation(operation string) *GrpcMethod
func (*Mux) GetOperationByName ¶
func (m *Mux) GetOperationByName(name string) *GrpcMethod
func (*Mux) GetRouteMethods ¶
func (m *Mux) GetRouteMethods() []RouteOperation
func (*Mux) MatchOperation ¶
func (m *Mux) MatchOperation(method, path string) (r result.Result[*MatchOperation])
func (*Mux) NewStream ¶
func (m *Mux) NewStream(ctx context.Context, desc *grpc.StreamDesc, method string, opts ...grpc.CallOption) (grpc.ClientStream, error)
func (*Mux) RegisterProxy ¶
func (m *Mux) RegisterProxy(sd *grpc.ServiceDesc, proxy lava.GrpcRouter, cli grpc.ClientConnInterface)
func (*Mux) RegisterService ¶
func (m *Mux) RegisterService(sd *grpc.ServiceDesc, ss any)
RegisterService satisfies grpc.ServiceRegistrar for generated service code hooks.
func (*Mux) SetRequestDecoder ¶
func (*Mux) SetResponseEncoder ¶
func (*Mux) SetStreamInterceptor ¶
func (m *Mux) SetStreamInterceptor(interceptor grpc.StreamServerInterceptor)
SetStreamInterceptor configures the in-process channel to use the given server interceptor for streaming RPCs when dispatching.
func (*Mux) SetUnaryInterceptor ¶
func (m *Mux) SetUnaryInterceptor(interceptor grpc.UnaryServerInterceptor)
type PathFieldVar ¶
type PathFieldVar = routertree.PathFieldVar
type RouteOperation ¶
type RouteOperation = routertree.RouteOperation
type ServerMetadata ¶
ServerMetadata consists of metadata sent from gRPC server.
func ServerMetadataFromContext ¶
func ServerMetadataFromContext(ctx context.Context) (md ServerMetadata, ok bool)
ServerMetadataFromContext returns the ServerMetadata in ctx
type ServerTransportStream ¶
type ServerTransportStream struct {
// contains filtered or unexported fields
}
ServerTransportStream implements grpc.ServerTransportStream. It should only be used by the generated files to support grpc.SendHeader outside of gRPC server use.
func (*ServerTransportStream) Header ¶
func (s *ServerTransportStream) Header() metadata.MD
Header returns the header metadata of the stream.
func (*ServerTransportStream) Method ¶
func (s *ServerTransportStream) Method() string
Method returns the method for the stream.
func (*ServerTransportStream) SendHeader ¶
func (s *ServerTransportStream) SendHeader(md metadata.MD) error
SendHeader sets the header metadata.
func (*ServerTransportStream) SetHeader ¶
func (s *ServerTransportStream) SetHeader(md metadata.MD) error
SetHeader sets the header metadata.
func (*ServerTransportStream) SetTrailer ¶
func (s *ServerTransportStream) SetTrailer(md metadata.MD) error
SetTrailer sets the trailer metadata.
func (*ServerTransportStream) Trailer ¶
func (s *ServerTransportStream) Trailer() metadata.MD
Trailer returns the cached trailer metadata.
type StreamDirector ¶
type StreamHandler ¶
type StreamHandler = grpc.StreamHandler