Documentation
¶
Index ¶
- Constants
- func CodecForRequest(r *http.Request, name string) (encoding.Codec, bool)
- func CodecForResponse(r *http.Response) encoding.Codec
- func DefaultErrorDecoder(_ context.Context, res *http.Response) error
- func DefaultErrorEncoder(w http.ResponseWriter, r *http.Request, err error)
- func DefaultRequestDecoder(r *http.Request, v any) error
- func DefaultRequestEncoder(_ context.Context, contentType string, in any) ([]byte, error)
- func DefaultRequestQuery(r *http.Request, v any) error
- func DefaultRequestVars(r *http.Request, v any) error
- func DefaultResponseDecoder(_ context.Context, res *http.Response, v any) error
- func DefaultResponseEncoder(w http.ResponseWriter, r *http.Request, v any) error
- func RequestFromServerContext(ctx context.Context) (*http.Request, bool)
- func ResponseWriterFromServerContext(ctx context.Context) (http.ResponseWriter, bool)
- func SetCookie(ctx context.Context, cookie *http.Cookie)
- func SetOperation(ctx context.Context, op string)
- type CallOption
- type Client
- type ClientOption
- func WithBlock() ClientOption
- func WithDiscovery(d registry.Discovery) ClientOption
- func WithEndpoint(endpoint string) ClientOption
- func WithErrorDecoder(errorDecoder DecodeErrorFunc) ClientOption
- func WithMiddleware(m ...middleware.Middleware) ClientOption
- func WithNodeFilter(filters ...selector.NodeFilter) ClientOption
- func WithRequestEncoder(encoder EncodeRequestFunc) ClientOption
- func WithResponseDecoder(decoder DecodeResponseFunc) ClientOption
- func WithSubset(size int) ClientOption
- func WithTLSConfig(c *tls.Config) ClientOption
- func WithTimeout(d time.Duration) ClientOption
- func WithTransport(trans http.RoundTripper) ClientOption
- func WithUserAgent(ua string) ClientOption
- type ContentTypeCallOption
- type Context
- type DecodeErrorFunc
- type DecodeRequestFunc
- type DecodeResponseFunc
- type EmptyCallOption
- type EncodeErrorFunc
- type EncodeRequestFunc
- type EncodeResponseFunc
- type FilterFunc
- type Flusher
- type HandlerFunc
- type HeaderCallOption
- type OperationCallOption
- type PathTemplateCallOption
- type Redirector
- type Request
- type ResponseController
- type ResponseTransporter
- type ResponseWriter
- type RouteInfo
- type Router
- func (r *Router) CONNECT(path string, h HandlerFunc, m ...FilterFunc)
- func (r *Router) DELETE(path string, h HandlerFunc, m ...FilterFunc)
- func (r *Router) GET(path string, h HandlerFunc, m ...FilterFunc)
- func (r *Router) Group(prefix string, filters ...FilterFunc) *Router
- func (r *Router) HEAD(path string, h HandlerFunc, m ...FilterFunc)
- func (r *Router) Handle(method, relativePath string, h HandlerFunc, filters ...FilterFunc)
- func (r *Router) OPTIONS(path string, h HandlerFunc, m ...FilterFunc)
- func (r *Router) PATCH(path string, h HandlerFunc, m ...FilterFunc)
- func (r *Router) POST(path string, h HandlerFunc, m ...FilterFunc)
- func (r *Router) PUT(path string, h HandlerFunc, m ...FilterFunc)
- func (r *Router) TRACE(path string, h HandlerFunc, m ...FilterFunc)
- type Server
- func (s *Server) Endpoint() (*url.URL, error)
- func (s *Server) Handle(path string, h http.Handler)
- func (s *Server) HandleFunc(path string, h http.HandlerFunc)
- func (s *Server) HandleHeader(key, val string, h http.HandlerFunc)
- func (s *Server) HandlePrefix(prefix string, h http.Handler)
- func (s *Server) Route(prefix string, filters ...FilterFunc) *Router
- func (s *Server) ServeHTTP(res http.ResponseWriter, req *http.Request)
- func (s *Server) Start(ctx context.Context) error
- func (s *Server) Stop(ctx context.Context) error
- func (s *Server) Use(selector string, m ...middleware.Middleware)
- func (s *Server) WalkHandle(handle func(method, path string, handler http.HandlerFunc)) error
- func (s *Server) WalkRoute(fn WalkRouteFunc) error
- type ServerOption
- func Address(addr string) ServerOption
- func Endpoint(endpoint *url.URL) ServerOption
- func ErrorEncoder(en EncodeErrorFunc) ServerOption
- func Filter(filters ...FilterFunc) ServerOption
- func Listener(lis net.Listener) ServerOption
- func Logger(log.Logger) ServerOption
- func MethodNotAllowedHandler(handler http.Handler) ServerOption
- func Middleware(m ...middleware.Middleware) ServerOption
- func Network(network string) ServerOption
- func NotFoundHandler(handler http.Handler) ServerOption
- func PathPrefix(prefix string) ServerOption
- func RequestDecoder(dec DecodeRequestFunc) ServerOption
- func RequestQueryDecoder(dec DecodeRequestFunc) ServerOption
- func RequestVarsDecoder(dec DecodeRequestFunc) ServerOption
- func ResponseEncoder(en EncodeResponseFunc) ServerOption
- func StrictSlash(strictSlash bool) ServerOption
- func TLSConfig(c *tls.Config) ServerOption
- func Timeout(timeout time.Duration) ServerOption
- type Target
- type Transport
- func (tr *Transport) Endpoint() string
- func (tr *Transport) Kind() transport.Kind
- func (tr *Transport) Operation() string
- func (tr *Transport) PathTemplate() string
- func (tr *Transport) ReplyHeader() transport.Header
- func (tr *Transport) Request() *http.Request
- func (tr *Transport) RequestHeader() transport.Header
- func (tr *Transport) Response() http.ResponseWriter
- type Transporter
- type WalkRouteFunc
Constants ¶
const SupportPackageIsVersion1 = true
SupportPackageIsVersion1 These constants should not be referenced from any other code.
Variables ¶
This section is empty.
Functions ¶
func CodecForRequest ¶
CodecForRequest get encoding.Codec via http.Request
func CodecForResponse ¶
CodecForResponse get encoding.Codec via http.Response
func DefaultErrorDecoder ¶
DefaultErrorDecoder is an HTTP error decoder.
func DefaultErrorEncoder ¶
func DefaultErrorEncoder(w http.ResponseWriter, r *http.Request, err error)
DefaultErrorEncoder encodes the error to the HTTP response.
func DefaultRequestDecoder ¶
DefaultRequestDecoder decodes the request body to object.
func DefaultRequestEncoder ¶
DefaultRequestEncoder is an HTTP request encoder.
func DefaultRequestQuery ¶ added in v2.5.1
DefaultRequestQuery decodes the request vars to object.
func DefaultRequestVars ¶ added in v2.5.1
DefaultRequestVars decodes the request vars to object.
func DefaultResponseDecoder ¶
DefaultResponseDecoder is an HTTP response decoder.
func DefaultResponseEncoder ¶
DefaultResponseEncoder encodes the object to the HTTP response.
func RequestFromServerContext ¶ added in v2.5.1
RequestFromServerContext returns request from context.
func ResponseWriterFromServerContext ¶ added in v2.9.1
func ResponseWriterFromServerContext(ctx context.Context) (http.ResponseWriter, bool)
ResponseWriterFromServerContext returns the http.ResponseWriter from context if available. This function provides backward compatibility and safe access to the ResponseWriter. Returns nil if the transport doesn't implement ResponseTransporter.
func SetCookie ¶ added in v2.8.0
SetCookie adds a Set-Cookie header to the provided ResponseWriter's headers. The provided cookie must have a valid Name. Invalid cookies may be silently dropped.
func SetOperation ¶
SetOperation sets the transport operation.
Types ¶
type CallOption ¶
type CallOption interface {
// contains filtered or unexported methods
}
CallOption configures a Call before it starts or extracts information from a Call after it completes.
func ContentType ¶
func ContentType(contentType string) CallOption
ContentType with request content type.
func Header ¶
func Header(header *http.Header) CallOption
Header returns a CallOptions that retrieves the http response header from server reply.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is an HTTP client.
func NewClient ¶
func NewClient(ctx context.Context, opts ...ClientOption) (*Client, error)
NewClient returns an HTTP client.
func (*Client) Close ¶ added in v2.0.3
Close tears down the Transport and all underlying connections.
type ClientOption ¶
type ClientOption func(*clientOptions)
ClientOption is HTTP client option.
func WithDiscovery ¶
func WithDiscovery(d registry.Discovery) ClientOption
WithDiscovery with client discovery.
func WithErrorDecoder ¶
func WithErrorDecoder(errorDecoder DecodeErrorFunc) ClientOption
WithErrorDecoder with client error decoder.
func WithMiddleware ¶
func WithMiddleware(m ...middleware.Middleware) ClientOption
WithMiddleware with client middleware.
func WithNodeFilter ¶ added in v2.5.0
func WithNodeFilter(filters ...selector.NodeFilter) ClientOption
WithNodeFilter with select filters
func WithRequestEncoder ¶
func WithRequestEncoder(encoder EncodeRequestFunc) ClientOption
WithRequestEncoder with client request encoder.
func WithResponseDecoder ¶
func WithResponseDecoder(decoder DecodeResponseFunc) ClientOption
WithResponseDecoder with client response decoder.
func WithSubset ¶ added in v2.6.1
func WithSubset(size int) ClientOption
WithSubset with client discovery subset size. zero value means subset filter disabled
func WithTLSConfig ¶ added in v2.0.5
func WithTLSConfig(c *tls.Config) ClientOption
WithTLSConfig with tls config.
func WithTimeout ¶
func WithTimeout(d time.Duration) ClientOption
WithTimeout with client request timeout.
func WithTransport ¶
func WithTransport(trans http.RoundTripper) ClientOption
WithTransport with client transport.
func WithUserAgent ¶
func WithUserAgent(ua string) ClientOption
WithUserAgent with client user agent.
type ContentTypeCallOption ¶
type ContentTypeCallOption struct { EmptyCallOption ContentType string }
ContentTypeCallOption is BodyCallOption
type Context ¶
type Context interface { context.Context Vars() url.Values Query() url.Values Form() url.Values Header() http.Header Request() *http.Request Response() http.ResponseWriter Middleware(middleware.Handler) middleware.Handler Bind(any) error BindVars(any) error BindQuery(any) error BindForm(any) error Returns(any, error) error Result(int, any) error JSON(int, any) error XML(int, any) error String(int, string) error Blob(int, string, []byte) error Stream(int, string, io.Reader) error Reset(http.ResponseWriter, *http.Request) }
Context is an HTTP Context.
type DecodeErrorFunc ¶
DecodeErrorFunc is decode error func.
type DecodeRequestFunc ¶
DecodeRequestFunc is decode request func.
type DecodeResponseFunc ¶
DecodeResponseFunc is response decode func.
type EmptyCallOption ¶
type EmptyCallOption struct{}
EmptyCallOption does not alter the Call configuration. It can be embedded in another structure to carry satellite data for use by interceptors.
type EncodeErrorFunc ¶
type EncodeErrorFunc func(http.ResponseWriter, *http.Request, error)
EncodeErrorFunc is encode error func.
type EncodeRequestFunc ¶
type EncodeRequestFunc func(ctx context.Context, contentType string, in any) (body []byte, err error)
EncodeRequestFunc is request encode func.
type EncodeResponseFunc ¶
EncodeResponseFunc is encode response func.
type FilterFunc ¶
FilterFunc is a function which receives a http.Handler and returns another http.Handler.
func FilterChain ¶
func FilterChain(filters ...FilterFunc) FilterFunc
FilterChain returns a FilterFunc that specifies the chained handler for HTTP Router.
type HandlerFunc ¶
HandlerFunc defines a function to serve HTTP requests.
type HeaderCallOption ¶
type HeaderCallOption struct { EmptyCallOption // contains filtered or unexported fields }
HeaderCallOption is retrieve response header for client call
type OperationCallOption ¶
type OperationCallOption struct { EmptyCallOption Operation string }
OperationCallOption is set ServiceMethod for client call
type PathTemplateCallOption ¶
type PathTemplateCallOption struct { EmptyCallOption Pattern string }
PathTemplateCallOption is set path template for client call
type Redirector ¶ added in v2.3.1
Redirector replies to the request with a redirect to url which may be a path relative to the request path.
func NewRedirect ¶ added in v2.3.1
func NewRedirect(url string, code int) Redirector
NewRedirect new a redirect with url, which may be a path relative to the request path. The provided code should be in the 3xx range and is usually StatusMovedPermanently, StatusFound or StatusSeeOther. If the Content-Type header has not been set, Redirect sets it to "text/html; charset=utf-8" and writes a small HTML body. Setting the Content-Type header to any value, including nil, disables that behavior.
type ResponseController ¶ added in v2.6.2
type ResponseController = http.ResponseController
type ResponseTransporter ¶ added in v2.9.1
type ResponseTransporter interface { Transporter Response() http.ResponseWriter }
ResponseTransporter extends Transporter with HTTP response access This interface provides access to the http.ResponseWriter for use cases like file downloads, streaming responses, or direct response manipulation.
type ResponseWriter ¶ added in v2.3.0
type ResponseWriter = http.ResponseWriter
ResponseWriter type net/http.
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
Router is an HTTP router.
func (*Router) CONNECT ¶
func (r *Router) CONNECT(path string, h HandlerFunc, m ...FilterFunc)
CONNECT registers a new CONNECT route for a path with matching handler in the router.
func (*Router) DELETE ¶
func (r *Router) DELETE(path string, h HandlerFunc, m ...FilterFunc)
DELETE registers a new DELETE route for a path with matching handler in the router.
func (*Router) GET ¶
func (r *Router) GET(path string, h HandlerFunc, m ...FilterFunc)
GET registers a new GET route for a path with matching handler in the router.
func (*Router) Group ¶ added in v2.0.1
func (r *Router) Group(prefix string, filters ...FilterFunc) *Router
Group returns a new router group.
func (*Router) HEAD ¶
func (r *Router) HEAD(path string, h HandlerFunc, m ...FilterFunc)
HEAD registers a new HEAD route for a path with matching handler in the router.
func (*Router) Handle ¶
func (r *Router) Handle(method, relativePath string, h HandlerFunc, filters ...FilterFunc)
Handle registers a new route with a matcher for the URL path and method.
func (*Router) OPTIONS ¶
func (r *Router) OPTIONS(path string, h HandlerFunc, m ...FilterFunc)
OPTIONS registers a new OPTIONS route for a path with matching handler in the router.
func (*Router) PATCH ¶
func (r *Router) PATCH(path string, h HandlerFunc, m ...FilterFunc)
PATCH registers a new PATCH route for a path with matching handler in the router.
func (*Router) POST ¶
func (r *Router) POST(path string, h HandlerFunc, m ...FilterFunc)
POST registers a new POST route for a path with matching handler in the router.
func (*Router) PUT ¶
func (r *Router) PUT(path string, h HandlerFunc, m ...FilterFunc)
PUT registers a new PUT route for a path with matching handler in the router.
func (*Router) TRACE ¶
func (r *Router) TRACE(path string, h HandlerFunc, m ...FilterFunc)
TRACE registers a new TRACE route for a path with matching handler in the router.
type Server ¶
Server is an HTTP server wrapper.
func NewServer ¶
func NewServer(opts ...ServerOption) *Server
NewServer creates an HTTP server by options.
func (*Server) Endpoint ¶
Endpoint return a real address to registry endpoint. examples:
https://127.0.0.1:8000 Legacy: http://127.0.0.1:8000?isSecure=false
func (*Server) HandleFunc ¶
func (s *Server) HandleFunc(path string, h http.HandlerFunc)
HandleFunc registers a new route with a matcher for the URL path.
func (*Server) HandleHeader ¶ added in v2.1.0
func (s *Server) HandleHeader(key, val string, h http.HandlerFunc)
HandleHeader registers a new route with a matcher for the header.
func (*Server) HandlePrefix ¶
HandlePrefix registers a new route with a matcher for the URL path prefix.
func (*Server) Route ¶
func (s *Server) Route(prefix string, filters ...FilterFunc) *Router
Route registers an HTTP router.
func (*Server) ServeHTTP ¶
func (s *Server) ServeHTTP(res http.ResponseWriter, req *http.Request)
ServeHTTP should write reply headers and data to the ResponseWriter and then return.
func (*Server) Use ¶ added in v2.4.1
func (s *Server) Use(selector string, m ...middleware.Middleware)
Use uses a service middleware with selector. selector:
- '/*'
- '/helloworld.v1.Greeter/*'
- '/helloworld.v1.Greeter/SayHello'
func (*Server) WalkHandle ¶ added in v2.7.0
func (s *Server) WalkHandle(handle func(method, path string, handler http.HandlerFunc)) error
WalkHandle walks the router and all its sub-routers, calling walkFn for each route in the tree.
func (*Server) WalkRoute ¶ added in v2.4.0
func (s *Server) WalkRoute(fn WalkRouteFunc) error
WalkRoute walks the router and all its sub-routers, calling walkFn for each route in the tree.
type ServerOption ¶
type ServerOption func(*Server)
ServerOption is an HTTP server option.
func Endpoint ¶ added in v2.0.1
func Endpoint(endpoint *url.URL) ServerOption
Endpoint with server address.
func ErrorEncoder ¶
func ErrorEncoder(en EncodeErrorFunc) ServerOption
ErrorEncoder with error encoder.
func Listener ¶ added in v2.1.4
func Listener(lis net.Listener) ServerOption
Listener with server lis
func Logger ¶
func Logger(log.Logger) ServerOption
Logger with server logger. Deprecated: use global logger instead.
func MethodNotAllowedHandler ¶ added in v2.7.3
func MethodNotAllowedHandler(handler http.Handler) ServerOption
func Middleware ¶
func Middleware(m ...middleware.Middleware) ServerOption
Middleware with service middleware option.
func NotFoundHandler ¶ added in v2.7.3
func NotFoundHandler(handler http.Handler) ServerOption
func PathPrefix ¶ added in v2.5.2
func PathPrefix(prefix string) ServerOption
PathPrefix with mux's PathPrefix, router will be replaced by a subrouter that start with prefix.
func RequestDecoder ¶
func RequestDecoder(dec DecodeRequestFunc) ServerOption
RequestDecoder with request decoder.
func RequestQueryDecoder ¶ added in v2.5.1
func RequestQueryDecoder(dec DecodeRequestFunc) ServerOption
RequestQueryDecoder with request decoder.
func RequestVarsDecoder ¶ added in v2.5.1
func RequestVarsDecoder(dec DecodeRequestFunc) ServerOption
RequestVarsDecoder with request decoder.
func ResponseEncoder ¶
func ResponseEncoder(en EncodeResponseFunc) ServerOption
ResponseEncoder with response encoder.
func StrictSlash ¶ added in v2.1.0
func StrictSlash(strictSlash bool) ServerOption
StrictSlash is with mux's StrictSlash If true, when the path pattern is "/path/", accessing "/path" will redirect to the former and vice versa.
func TLSConfig ¶ added in v2.0.5
func TLSConfig(c *tls.Config) ServerOption
TLSConfig with TLS config.
type Transport ¶
type Transport struct {
// contains filtered or unexported fields
}
Transport is an HTTP transport.
func (*Transport) PathTemplate ¶
PathTemplate returns the http path template.
func (*Transport) ReplyHeader ¶
ReplyHeader returns the reply header.
func (*Transport) RequestHeader ¶
RequestHeader returns the request header.
func (*Transport) Response ¶ added in v2.9.0
func (tr *Transport) Response() http.ResponseWriter
Response returns the HTTP response.
type Transporter ¶ added in v2.1.0
type Transporter interface { transport.Transporter Request() *http.Request PathTemplate() string }
Transporter is http Transporter
type WalkRouteFunc ¶ added in v2.4.0
WalkRouteFunc is the type of the function called for each route visited by Walk.