Documentation ¶
Index ¶
- Constants
- func NewResult(status int, messageFmt string, args ...interface{}) protocol.Result
- func WriteRequest(ctx context.Context, m binding.Message, httpRequest *http.Request, ...) error
- func WriteResponseWriter(ctx context.Context, m binding.Message, status int, rw http.ResponseWriter, ...) error
- type Message
- type Middleware
- type Option
- func WithHTTPTransport(httpTransport nethttp.RoundTripper) Option
- func WithHeader(key, value string) Option
- func WithListener(l net.Listener) Option
- func WithMiddleware(middleware Middleware) Option
- func WithPath(path string) Option
- func WithPort(port int) Option
- func WithShutdownTimeout(timeout time.Duration) Option
- func WithTarget(targetUrl string) Option
- type Protocol
- func (e *Protocol) GetPath() string
- func (e *Protocol) GetPort() int
- func (e *Protocol) HasTracePropagation() bool
- func (e *Protocol) OpenInbound(ctx context.Context) error
- func (p *Protocol) Receive(ctx context.Context) (binding.Message, error)
- func (p *Protocol) Request(ctx context.Context, m binding.Message) (binding.Message, error)
- func (p *Protocol) Respond(ctx context.Context) (binding.Message, protocol.ResponseFn, error)
- func (p *Protocol) Send(ctx context.Context, m binding.Message) error
- func (p *Protocol) ServeHTTP(rw http.ResponseWriter, req *http.Request)
- type Result
Constants ¶
const ContentLength = "Content-Length"
const ContentType = "Content-Type"
const ( // DefaultShutdownTimeout defines the default timeout given to the http.Server when calling Shutdown. DefaultShutdownTimeout = time.Minute * 1 )
Variables ¶
This section is empty.
Functions ¶
func NewResult ¶
NewResult returns a fully populated http Result that should be used as a transport.Result.
func WriteRequest ¶
func WriteRequest(ctx context.Context, m binding.Message, httpRequest *http.Request, transformers ...binding.TransformerFactory) error
Fill the provided httpRequest with the message m. Using context you can tweak the encoding processing (more details on binding.Write documentation).
func WriteResponseWriter ¶
func WriteResponseWriter(ctx context.Context, m binding.Message, status int, rw http.ResponseWriter, transformers ...binding.TransformerFactory) error
Write out to the the provided httpResponseWriter with the message m. Using context you can tweak the encoding processing (more details on binding.Write documentation).
Types ¶
type Message ¶
type Message struct { Header nethttp.Header BodyReader io.ReadCloser OnFinish func(error) error // contains filtered or unexported fields }
Message holds the Header and Body of a HTTP Request or Response. The Message instance *must* be constructed from NewMessage function. This message *cannot* be read several times. In order to read it more times, buffer it using binding/buffering methods
func NewMessage ¶
func NewMessage(header nethttp.Header, body io.ReadCloser) *Message
NewMessage returns a binding.Message with header and data. The returned binding.Message *cannot* be read several times. In order to read it more times, buffer it using binding/buffering methods
func NewMessageFromHttpRequest ¶
NewMessageFromHttpRequest returns a binding.Message with header and data. The returned binding.Message *cannot* be read several times. In order to read it more times, buffer it using binding/buffering methods
func NewMessageFromHttpResponse ¶
NewMessageFromHttpResponse returns a binding.Message with header and data. The returned binding.Message *cannot* be read several times. In order to read it more times, buffer it using binding/buffering methods
func (*Message) ReadBinary ¶
func (*Message) ReadEncoding ¶
func (*Message) ReadStructured ¶
type Middleware ¶
Middleware is a function that takes an existing http.Handler and wraps it in middleware, returning the wrapped http.Handler.
type Option ¶
Option is the function signature required to be considered an http.Option.
func WithHTTPTransport ¶
func WithHTTPTransport(httpTransport nethttp.RoundTripper) Option
WithHTTPTransport sets the HTTP client transport.
func WithHeader ¶
WithHeader sets an additional default outbound header for all cloudevents when using an HTTP request.
func WithListener ¶
WithListener sets the listener for StartReceiver. Only one of WithListener or WithPort is allowed.
func WithMiddleware ¶
func WithMiddleware(middleware Middleware) Option
WithMiddleware adds an HTTP middleware to the transport. It may be specified multiple times. Middleware is applied to everything before it. For example `NewClient(WithMiddleware(foo), WithMiddleware(bar))` would result in `bar(foo(original))`.
func WithPort ¶
WithPort sets the listening port for StartReceiver. Only one of WithListener or WithPort is allowed.
func WithShutdownTimeout ¶
WithShutdownTimeout sets the shutdown timeout when the http server is being shutdown.
func WithTarget ¶
WithTarget sets the outbound recipient of cloudevents when using an HTTP request.
type Protocol ¶
type Protocol struct { Target *url.URL RequestTemplate *http.Request Client *http.Client // ShutdownTimeout defines the timeout given to the http.Server when calling Shutdown. // If nil, DefaultShutdownTimeout is used. ShutdownTimeout *time.Duration // Port is the port to bind the receiver to. Defaults to 8080. Port *int // Path is the path to bind the receiver to. Defaults to "/". Path string // Handler is the handler the http Server will use. Use this to reuse the // http server. If nil, the Protocol will create a one. Handler *http.ServeMux // contains filtered or unexported fields }
Protocol acts as both a http client and a http handler.
func (*Protocol) GetPath ¶
GetPath returns the path the transport is hosted on. If the path is '/', the transport will handle requests on any URI. To discover the true path a request was received on, inspect the context from Receive(cxt, ...) with TransportContextFrom(ctx).
func (*Protocol) GetPort ¶
GetPort returns the listening port. Returns -1 if there is a listening error. Note this will call net.Listen() if the listener is not already started.
func (*Protocol) HasTracePropagation ¶
HasTracePropagation implements Protocol.HasTracePropagation
func (*Protocol) Receive ¶
Receive the next incoming HTTP request as a CloudEvent. Returns non-nil error if the incoming HTTP request fails to parse as a CloudEvent Returns io.EOF if the receiver is closed.
func (*Protocol) Respond ¶
Respond receives the next incoming HTTP request as a CloudEvent and waits for the response callback to invoked before continuing. Returns non-nil error if the incoming HTTP request fails to parse as a CloudEvent Returns io.EOF if the receiver is closed.