Documentation ¶
Index ¶
- func AsHTTPBodyReader(stream grpc.ServerStream, msg proto.Message) (body io.Reader, err error)
- func AsHTTPBodyWriter(stream grpc.ServerStream, msg proto.Message) (body io.Writer, err error)
- func Bool(val string) (bool, error)
- func BoolSlice(val, sep string) ([]bool, error)
- func BoolValue(val string) (*wrapperspb.BoolValue, error)
- func Bytes(val string) ([]byte, error)
- func BytesSlice(val, sep string) ([][]byte, error)
- func BytesValue(val string) (*wrapperspb.BytesValue, error)
- func DoubleValue(val string) (*wrapperspb.DoubleValue, error)
- func Duration(val string) (*durationpb.Duration, error)
- func Enum(val string, enumValMap map[string]int32) (int32, error)
- func EnumSlice(val, sep string, enumValMap map[string]int32) ([]int32, error)
- func Float32(val string) (float32, error)
- func Float32Slice(val, sep string) ([]float32, error)
- func Float64(val string) (float64, error)
- func Float64Slice(val, sep string) ([]float64, error)
- func FloatValue(val string) (*wrapperspb.FloatValue, error)
- func HTTPStatusCode(c codes.Code) int
- func Int32(val string) (int32, error)
- func Int32Slice(val, sep string) ([]int32, error)
- func Int32Value(val string) (*wrapperspb.Int32Value, error)
- func Int64(val string) (int64, error)
- func Int64Slice(val, sep string) ([]int64, error)
- func Int64Value(val string) (*wrapperspb.Int64Value, error)
- func NewOSSignalContext(ctx context.Context) (context.Context, func())
- func NewServer(mux *Mux, opts ...ServerOption) (*http.Server, error)
- func NewStreamContext(ctxFn NewContextFunc) grpc.StreamServerInterceptor
- func NewUnaryContext(ctxFn NewContextFunc) grpc.UnaryServerInterceptor
- func PopulateFieldFromPath(msg proto.Message, fieldPathString string, value string) error
- func PopulateQueryParameters(msg proto.Message, values url.Values, filter *utilities.DoubleArray) error
- func String(val string) (string, error)
- func StringSlice(val, sep string) ([]string, error)
- func StringValue(val string) (*wrapperspb.StringValue, error)
- func Timestamp(val string) (*timestamppb.Timestamp, error)
- func UInt32Value(val string) (*wrapperspb.UInt32Value, error)
- func UInt64Value(val string) (*wrapperspb.UInt64Value, error)
- func Uint32(val string) (uint32, error)
- func Uint32Slice(val, sep string) ([]uint32, error)
- func Uint64(val string) (uint64, error)
- func Uint64Slice(val, sep string) ([]uint64, error)
- func WSStatusCode(c codes.Code) ws.StatusCode
- type Codec
- type CodecJSON
- func (c CodecJSON) Marshal(v interface{}) ([]byte, error)
- func (c CodecJSON) MarshalAppend(b []byte, v interface{}) ([]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 interface{}) error
- func (c CodecJSON) WriteNext(w io.Writer, b []byte) (int, error)
- type CodecProto
- func (c CodecProto) Marshal(v interface{}) ([]byte, error)
- func (c CodecProto) MarshalAppend(b []byte, v interface{}) ([]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 interface{}) error
- func (c CodecProto) WriteNext(w io.Writer, b []byte) (int, error)
- type Compressor
- type CompressorGzip
- type DefaultQueryParser
- type Mux
- func (m *Mux) DropConn(ctx context.Context, cc *grpc.ClientConn) bool
- func (m *Mux) RegisterConn(ctx context.Context, cc *grpc.ClientConn) error
- func (m *Mux) RegisterReflectionServer(s *grpc.Server)
- func (m *Mux) RegisterService(sd *grpc.ServiceDesc, ss interface{})
- func (m *Mux) ServeHTTP(w http.ResponseWriter, r *http.Request)
- type MuxOption
- func CodecOption(contentType string, c Codec) MuxOption
- func CompressorOption(contentEncoding string, c Compressor) MuxOption
- func ConnectionTimeoutOption(d time.Duration) MuxOption
- func FilesOption(f *protoregistry.Files) MuxOption
- func MaxReceiveMessageSizeOption(s int) MuxOption
- func MaxSendMessageSizeOption(s int) MuxOption
- func ServiceConfigOption(sc *serviceconfig.Service) MuxOption
- func StatsOption(h stats.Handler) MuxOption
- func StreamServerInterceptorOption(interceptor grpc.StreamServerInterceptor) MuxOption
- func TypesOption(t protoregistry.MessageTypeResolver) MuxOption
- func UnaryServerInterceptorOption(interceptor grpc.UnaryServerInterceptor) MuxOption
- type NewContextFunc
- type QueryParameterParser
- type ServerOption
- type StreamCodec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AsHTTPBodyReader ¶
AsHTTPBodyReader returns the reader of a stream of google.api.HttpBody. The first message will be unmarshalled into msg excluding the data field. The returned reader is only valid during the lifetime of the RPC.
func AsHTTPBodyWriter ¶
AsHTTPBodyWriter returns the writer of a stream of google.api.HttpBody. The first message will be marshalled from msg excluding the data field. The returned writer is only valid during the lifetime of the RPC.
func BoolSlice ¶
BoolSlice converts 'val' where individual booleans are separated by 'sep' into a bool slice.
func BoolValue ¶
func BoolValue(val string) (*wrapperspb.BoolValue, error)
BoolValue well-known type support as wrapper around bool type
func Bytes ¶
Bytes converts the given string representation of a byte sequence into a slice of bytes A bytes sequence is encoded in URL-safe base64 without padding
func BytesSlice ¶
BytesSlice converts 'val' where individual bytes sequences, encoded in URL-safe base64 without padding, are separated by 'sep' into a slice of bytes slices slice.
func BytesValue ¶
func BytesValue(val string) (*wrapperspb.BytesValue, error)
BytesValue well-known type support as wrapper around bytes[] type
func DoubleValue ¶
func DoubleValue(val string) (*wrapperspb.DoubleValue, error)
DoubleValue well-known type support as wrapper around float64 type
func Duration ¶
func Duration(val string) (*durationpb.Duration, error)
Duration converts the given string into a timestamp.Duration.
func Enum ¶
Enum converts the given string into an int32 that should be type casted into the correct enum proto type.
func EnumSlice ¶
EnumSlice converts 'val' where individual enums are separated by 'sep' into a int32 slice. Each individual int32 should be type casted into the correct enum proto type.
func Float32 ¶
Float32 converts the given string representation of a floating point number into float32.
func Float32Slice ¶
Float32Slice converts 'val' where individual floating point numbers are separated by 'sep' into a float32 slice.
func Float64 ¶
Float64 converts the given string representation into representation of a floating point number into float64.
func Float64Slice ¶
Float64Slice converts 'val' where individual floating point numbers are separated by 'sep' into a float64 slice.
func FloatValue ¶
func FloatValue(val string) (*wrapperspb.FloatValue, error)
FloatValue well-known type support as wrapper around float32 type
func HTTPStatusCode ¶
func Int32Slice ¶
Int32Slice converts 'val' where individual integers are separated by 'sep' into a int32 slice.
func Int32Value ¶
func Int32Value(val string) (*wrapperspb.Int32Value, error)
Int32Value well-known type support as wrapper around int32 type
func Int64Slice ¶
Int64Slice converts 'val' where individual integers are separated by 'sep' into a int64 slice.
func Int64Value ¶
func Int64Value(val string) (*wrapperspb.Int64Value, error)
Int64Value well-known type support as wrapper around int64 type
func NewOSSignalContext ¶
NewOSSignalContext tries to gracefully handle OS closure.
func NewServer ¶
func NewServer(mux *Mux, opts ...ServerOption) (*http.Server, error)
NewServer creates a new http.Server with http2 support. The server is configured with the given options. It is a convenience function for creating a new http.Server.
func NewStreamContext ¶
func NewStreamContext(ctxFn NewContextFunc) grpc.StreamServerInterceptor
NewStreamContext returns a StreamServerInterceptor that calls ctxFn to create a new context for each request.
func NewUnaryContext ¶
func NewUnaryContext(ctxFn NewContextFunc) grpc.UnaryServerInterceptor
NewUnaryContext returns a UnaryServerInterceptor that calls ctxFn to create a new context for each request.
func PopulateFieldFromPath ¶
PopulateFieldFromPath sets a value in a nested Protobuf structure.
func PopulateQueryParameters ¶
func PopulateQueryParameters(msg proto.Message, values url.Values, filter *utilities.DoubleArray) error
PopulateQueryParameters parses query parameters into "msg" using current query parser
func StringSlice ¶
StringSlice converts 'val' where individual strings are separated by 'sep' into a string slice.
func StringValue ¶
func StringValue(val string) (*wrapperspb.StringValue, error)
StringValue well-known type support as wrapper around string type
func Timestamp ¶
func Timestamp(val string) (*timestamppb.Timestamp, error)
Timestamp converts the given RFC3339 formatted string into a timestamp.Timestamp.
func UInt32Value ¶
func UInt32Value(val string) (*wrapperspb.UInt32Value, error)
UInt32Value well-known type support as wrapper around uint32 type
func UInt64Value ¶
func UInt64Value(val string) (*wrapperspb.UInt64Value, error)
UInt64Value well-known type support as wrapper around uint64 type
func Uint32Slice ¶
Uint32Slice converts 'val' where individual integers are separated by 'sep' into a uint32 slice.
func Uint64Slice ¶
Uint64Slice converts 'val' where individual integers are separated by 'sep' into a uint64 slice.
func WSStatusCode ¶
func WSStatusCode(c codes.Code) ws.StatusCode
Types ¶
type Codec ¶
type Codec interface { encoding.Codec // MarshalAppend appends the marshaled form of v to b and returns the result. MarshalAppend([]byte, interface{}) ([]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.
func (CodecJSON) MarshalAppend ¶
type CodecProto ¶
type CodecProto struct {
proto.MarshalOptions
}
CodecProto is a Codec implementation with protobuf binary format.
func (CodecProto) Marshal ¶
func (c CodecProto) Marshal(v interface{}) ([]byte, error)
func (CodecProto) MarshalAppend ¶
func (c CodecProto) MarshalAppend(b []byte, v interface{}) ([]byte, error)
func (CodecProto) Name ¶
func (CodecProto) Name() string
Name == "proto" overwritting internal proto codec
func (CodecProto) Unmarshal ¶
func (CodecProto) Unmarshal(data []byte, v interface{}) error
type Compressor ¶
type Compressor interface { encoding.Compressor }
Compressor is used to compress and decompress messages. Based on grpc/encoding.
type CompressorGzip ¶
type CompressorGzip struct { Level *int // contains filtered or unexported fields }
CompressorGzip implements the Compressor interface. Based on grpc/encoding/gzip.
func (*CompressorGzip) Compress ¶
func (c *CompressorGzip) Compress(w io.Writer) (io.WriteCloser, error)
Compress implements the Compressor interface.
func (*CompressorGzip) Decompress ¶
Decompress implements the Compressor interface.
type DefaultQueryParser ¶
type DefaultQueryParser struct{}
DefaultQueryParser is a QueryParameterParser which implements the default query parameters parsing behavior.
See https://github.com/grpc-ecosystem/grpc-gateway/issues/2632 for more context.
func (*DefaultQueryParser) Parse ¶
func (*DefaultQueryParser) Parse(msg proto.Message, values url.Values, filter *utilities.DoubleArray) error
Parse populates "values" into "msg". A value is ignored if its key starts with one of the elements in "filter".
type Mux ¶
type Mux struct {
// contains filtered or unexported fields
}
func (*Mux) RegisterConn ¶
func (*Mux) RegisterReflectionServer ¶
RegisterReflectionServer registers the server reflection service for multiple proxied gRPC servers. Each individual reflection stream is merged to provide a consistent view at the point of stream creation.
func (*Mux) RegisterService ¶
func (m *Mux) RegisterService(sd *grpc.ServiceDesc, ss interface{})
RegisterService satisfies grpc.ServiceRegistrar for generated service code hooks.
type MuxOption ¶
type MuxOption func(*muxOptions)
MuxOption is an option for a mux.
func CodecOption ¶
CodecOption registers a codec for the given content type.
func CompressorOption ¶
func CompressorOption(contentEncoding string, c Compressor) MuxOption
CompressorOption registers a compressor for the given content encoding.
func ConnectionTimeoutOption ¶
func FilesOption ¶
func FilesOption(f *protoregistry.Files) MuxOption
func ServiceConfigOption ¶
func ServiceConfigOption(sc *serviceconfig.Service) MuxOption
ServiceConfigOption sets the service config for the mux. Currently only http rules will be used to annotate services.
func StatsOption ¶
func StreamServerInterceptorOption ¶
func StreamServerInterceptorOption(interceptor grpc.StreamServerInterceptor) MuxOption
func TypesOption ¶
func TypesOption(t protoregistry.MessageTypeResolver) MuxOption
func UnaryServerInterceptorOption ¶
func UnaryServerInterceptorOption(interceptor grpc.UnaryServerInterceptor) MuxOption
type NewContextFunc ¶
type NewContextFunc func(ctx context.Context, fullMethod string, isClientStream, isServerStream bool) context.Context
NewContextFunc is a function that creates a new context for a request. The returned context is used for the duration of the request.
type QueryParameterParser ¶
type QueryParameterParser interface {
Parse(msg proto.Message, values url.Values, filter *utilities.DoubleArray) error
}
QueryParameterParser defines interface for all query parameter parsers
type ServerOption ¶
type ServerOption func(*serverOptions) error
ServerOption is similar to grpc.ServerOption.
func HTTPHandlerOption ¶
func HTTPHandlerOption(pattern string, handler http.Handler) ServerOption
func MuxHandleOption ¶
func MuxHandleOption(patterns ...string) ServerOption
func TLSCredsOption ¶
func TLSCredsOption(c *tls.Config) ServerOption
type StreamCodec ¶
type StreamCodec interface { Codec // ReadNext returns the size of the next message appended to buf. // ReadNext reads from r until either it has read a complete message or // encountered an error and returns all the data read from r. // The message is contained in dst[:n]. // Excess data read from r is stored in dst[n:]. ReadNext(buf []byte, r io.Reader, limit int) (dst []byte, n int, err error) // WriteNext writes the message to w with a size aware encoding // returning the number of bytes written. WriteNext(w io.Writer, src []byte) (n int, err error) }
StreamCodec is used in streaming RPCs where the message boundaries are determined by the codec.