http

package
v2.0.2 Latest Latest
Warning

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

Go to latest
Published: Jul 25, 2021 License: MIT Imports: 26 Imported by: 1,744

Documentation

Index

Constants

View Source
const SupportPackageIsVersion1 = true

SupportPackageIsVersion1 These constants should not be referenced from any other code.

Variables

This section is empty.

Functions

func CodecForRequest

func CodecForRequest(r *http.Request, name string) (encoding.Codec, bool)

CodecForRequest get encoding.Codec via http.Request

func CodecForResponse

func CodecForResponse(r *http.Response) encoding.Codec

CodecForResponse get encoding.Codec via http.Response

func DefaultErrorDecoder

func DefaultErrorDecoder(ctx context.Context, res *http.Response) error

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

func DefaultRequestDecoder(r *http.Request, v interface{}) error

DefaultRequestDecoder decodes the request body to object.

func DefaultRequestEncoder

func DefaultRequestEncoder(ctx context.Context, contentType string, in interface{}) ([]byte, error)

DefaultRequestEncoder is an HTTP request encoder.

func DefaultResponseDecoder

func DefaultResponseDecoder(ctx context.Context, res *http.Response, v interface{}) error

DefaultResponseDecoder is an HTTP response decoder.

func DefaultResponseEncoder

func DefaultResponseEncoder(w http.ResponseWriter, r *http.Request, v interface{}) error

DefaultResponseEncoder encodes the object to the HTTP response.

func SetOperation

func SetOperation(ctx context.Context, op string)

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(header *http.Header) CallOption

Header returns a CallOptions that retrieves the http response header from server reply.

func Operation

func Operation(operation string) CallOption

Operation is serviceMethod call option

func PathTemplate

func PathTemplate(pattern string) CallOption

PathTemplate is http path template

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) Do

func (client *Client) Do(req *http.Request, opts ...CallOption) (*http.Response, error)

Do send an HTTP request and decodes the body of response into target. returns an error (of type *Error) if the response status code is not 2xx.

func (*Client) Invoke

func (client *Client) Invoke(ctx context.Context, method, path string, args interface{}, reply interface{}, opts ...CallOption) error

Invoke makes an rpc call procedure for remote service.

type ClientOption

type ClientOption func(*clientOptions)

ClientOption is HTTP client option.

func WithBalancer

func WithBalancer(b balancer.Balancer) ClientOption

WithBalancer with client balancer. Experimental Notice: This type is EXPERIMENTAL and may be changed or removed in a later release.

func WithBlock added in v2.0.1

func WithBlock() ClientOption

WithBlock with client block.

func WithDiscovery

func WithDiscovery(d registry.Discovery) ClientOption

WithDiscovery with client discovery.

func WithEndpoint

func WithEndpoint(endpoint string) ClientOption

WithEndpoint with client addr.

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 WithRequestEncoder

func WithRequestEncoder(encoder EncodeRequestFunc) ClientOption

WithRequestEncoder with client request encoder.

func WithResponseDecoder

func WithResponseDecoder(decoder DecodeResponseFunc) ClientOption

WithResponseDecoder with client response decoder.

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(interface{}) error
	BindVars(interface{}) error
	BindQuery(interface{}) error
	BindForm(interface{}) error
	Returns(interface{}, error) error
	Result(int, interface{}) error
	JSON(int, interface{}) error
	XML(int, interface{}) 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

type DecodeErrorFunc func(ctx context.Context, res *http.Response) error

DecodeErrorFunc is decode error func.

type DecodeRequestFunc

type DecodeRequestFunc func(*http.Request, interface{}) error

DecodeRequestFunc is decode request func.

type DecodeResponseFunc

type DecodeResponseFunc func(ctx context.Context, res *http.Response, out interface{}) error

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 interface{}) (body []byte, err error)

EncodeRequestFunc is request encode func.

type EncodeResponseFunc

type EncodeResponseFunc func(http.ResponseWriter, *http.Request, interface{}) error

EncodeResponseFunc is encode response func.

type FilterFunc

type FilterFunc func(http.Handler) http.Handler

FilterFunc is a function which receives an 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

type HandlerFunc func(Context) error

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 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

type Server struct {
	*http.Server
	// contains filtered or unexported fields
}

Server is an HTTP server wrapper.

func NewServer

func NewServer(opts ...ServerOption) *Server

NewServer creates an HTTP server by options.

func (*Server) Endpoint

func (s *Server) Endpoint() (*url.URL, error)

Endpoint return a real address to registry endpoint. examples:

http://127.0.0.1:8000?isSecure=false

func (*Server) Handle

func (s *Server) Handle(path string, h http.Handler)

Handle registers a new route with a matcher for the URL path.

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) HandlePrefix

func (s *Server) HandlePrefix(prefix string, h http.Handler)

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) Start

func (s *Server) Start(ctx context.Context) error

Start start the HTTP server.

func (*Server) Stop

func (s *Server) Stop(ctx context.Context) error

Stop stop the HTTP server.

type ServerOption

type ServerOption func(*Server)

ServerOption is an HTTP server option.

func Address

func Address(addr string) ServerOption

Address with server address.

func Endpoint added in v2.0.1

func Endpoint(endpoint *url.URL) ServerOption

Endpoint with server endpoint.

func ErrorEncoder

func ErrorEncoder(en EncodeErrorFunc) ServerOption

ErrorEncoder with error encoder.

func Filter

func Filter(filters ...FilterFunc) ServerOption

Filter with HTTP middleware option.

func Logger

func Logger(logger log.Logger) ServerOption

Logger with server logger.

func Middleware

func Middleware(m ...middleware.Middleware) ServerOption

Middleware with service middleware option.

func Network

func Network(network string) ServerOption

Network with server network.

func RequestDecoder

func RequestDecoder(dec DecodeRequestFunc) ServerOption

RequestDecoder with request decoder.

func ResponseEncoder

func ResponseEncoder(en EncodeResponseFunc) ServerOption

ResponseEncoder with response encoder.

func Timeout

func Timeout(timeout time.Duration) ServerOption

Timeout with server timeout.

type Target

type Target struct {
	Scheme    string
	Authority string
	Endpoint  string
}

Target is resolver target

type Transport

type Transport struct {
	// contains filtered or unexported fields
}

Transport is an HTTP transport.

func (*Transport) Endpoint

func (tr *Transport) Endpoint() string

Endpoint returns the transport endpoint.

func (*Transport) Kind

func (tr *Transport) Kind() transport.Kind

Kind returns the transport kind.

func (*Transport) Operation

func (tr *Transport) Operation() string

Operation returns the transport operation.

func (*Transport) PathTemplate

func (tr *Transport) PathTemplate() string

PathTemplate returns the http path template.

func (*Transport) ReplyHeader

func (tr *Transport) ReplyHeader() transport.Header

ReplyHeader returns the reply header.

func (*Transport) Request

func (tr *Transport) Request() *http.Request

Request returns the HTTP request.

func (*Transport) RequestHeader

func (tr *Transport) RequestHeader() transport.Header

RequestHeader returns the request header.

type Updater

type Updater interface {
	Update(nodes []*registry.ServiceInstance)
}

Updater is resolver nodes updater

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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