inlet_http

package module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2015 License: Apache-2.0 Imports: 13 Imported by: 3

README

inlet_http

component - http

Documentation

Index

Constants

View Source
const (
	CTX_HTTP_COOKIES = "CTX_HTTP_COOKIES"
	CTX_HTTP_HEADERS = "CTX_HTTP_HEADERS"
	CTX_HTTP_RANGE   = "CTX_HTTP_RANGE"

	CMD_HTTP_HEADERS_SET = "CMD_HTTP_HEADERS_SET"
	CMD_HTTP_COOKIES_SET = "CMD_HTTP_COOKIES_SET"
)
View Source
const (
	REQUEST_TIMEOUT = 30 * time.Second
)

Variables

View Source
var (
	ERR_MESSAGE_ID_IS_EMPTY    = errors.TN(INLET_HTTP_ERR_NS, 1, "message id is empty")
	ERR_PAYLOAD_CHAN_NOT_EXIST = errors.TN(INLET_HTTP_ERR_NS, 2, "payload chan not exist, message id: {{.id}}")
	ERR_ERROR_CHAN_NOT_EXIST   = errors.TN(INLET_HTTP_ERR_NS, 3, "error chan not exist, message id: {{.id}}")

	ERR_READ_HTTP_BODY_FAILED      = errors.TN(INLET_HTTP_ERR_NS, 4, "read http body failed,error: {{.err}}")
	ERR_UNMARSHAL_HTTP_BODY_FAILED = errors.TN(INLET_HTTP_ERR_NS, 5, "unmarshal http body failed, error: {{.err}}")

	ERR_PARSE_COMMAND_TO_OBJECT_FAILED = errors.TN(INLET_HTTP_ERR_NS, 6, "parse command {{.cmd}} error, error: {{.err}}")
	ERR_REQUEST_TIMEOUT                = errors.TN(INLET_HTTP_ERR_NS, 7, "request timeout, graph: {{.graphName}}, message id: {{.msgId}}")
	ERR_GATHER_RESPONSE_TIMEOUT        = errors.TN(INLET_HTTP_ERR_NS, 8, "gather response timeout, graph: {{.graphName}}")

	ERR_REQUEST_TIMEOUT_VALUE_FORMAT_WRONG = errors.TN(INLET_HTTP_ERR_NS, 9, "request timeout value format wrong, value: {{.value}}")

	ERR_MARSHAL_STAT_DATA_FAILED = errors.TN(INLET_HTTP_ERR_NS, 10, "marshal stat data failed, err: {{.err}}")
)
View Source
var INLET_HTTP_ERR_NS = "INLET_HTTP"

Functions

func SetErrorResponseHandler

func SetErrorResponseHandler(handler InletHTTPErrorResponseHandler) option

func SetGraphProvider

func SetGraphProvider(graphProvider GraphProvider) option

func SetHTTPConfig

func SetHTTPConfig(httpConfig Config) option

func SetLogger added in v0.2.0

func SetLogger(logger *log.Logger) option

func SetPassThroughHeaders added in v0.2.0

func SetPassThroughHeaders(headers ...string) option

func SetRangeHeader added in v0.2.0

func SetRangeHeader(header string) option

func SetRequestDecoder

func SetRequestDecoder(decoder InletHTTPRequestDecoder) option

func SetRequestPayloadHook

func SetRequestPayloadHook(hook InletHTTPRequestPayloadHook) option

func SetRequester

func SetRequester(requester Requester) option

func SetResponseHandler

func SetResponseHandler(handler InletHTTPResponseHandler) option

func SetTimeout

func SetTimeout(millisecond int64) option

func SetTimeoutHeader

func SetTimeoutHeader(header string) option

Types

type ClassicRequester

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

func (*ClassicRequester) GetMessageSenderFactory

func (p *ClassicRequester) GetMessageSenderFactory() spirit.MessageSenderFactory

func (*ClassicRequester) GetTimeout

func (p *ClassicRequester) GetTimeout() time.Duration

func (*ClassicRequester) OnMessageError

func (p *ClassicRequester) OnMessageError(payload spirit.Payload)

func (*ClassicRequester) OnMessageProcessed

func (p *ClassicRequester) OnMessageProcessed(messageId string)

func (*ClassicRequester) OnMessageReceived

func (p *ClassicRequester) OnMessageReceived(payload spirit.Payload)

func (*ClassicRequester) Request

func (p *ClassicRequester) Request(graph spirit.MessageGraph, payload spirit.Payload, payloadRespChan chan spirit.Payload, errResp chan error) (msgId string, err error)

func (*ClassicRequester) SetMessageSenderFactory

func (p *ClassicRequester) SetMessageSenderFactory(factory spirit.MessageSenderFactory)

func (*ClassicRequester) SetTimeout

func (p *ClassicRequester) SetTimeout(timeout time.Duration)

type Config

type Config struct {
	Address    string `json:"address"`
	Domain     string `json:"domain"`
	Timeout    int64  `json:"timeout"`
	EnableStat bool   `json:"enable_stat"`
}

type GraphProvider

type GraphProvider interface {
	SetGraph(name string, graph spirit.MessageGraph) GraphProvider
	GetGraph(r *http.Request, body []byte) (graphs map[string]spirit.MessageGraph, err error)
}

type GraphResponse

type GraphResponse struct {
	GraphName   string
	RespPayload spirit.Payload
	Error       error
}

type GraphStat

type GraphStat struct {
	GraphName    string `json:"-"`
	RequestCount int64  `json:"request_count"`
	TimeoutCount int64  `json:"timeout_count"`
	ErrorCount   int64  `json:"error_count"`

	TotalTimeCost   time.Duration `json:"-"`
	MinTimeCost     time.Duration `json:"-"`
	MaxTimeCost     time.Duration `json:"-"`
	LastRequestTime string        `json:"last_request_time"`

	StrTotalTimeCost string `json:"total_time_cost"`
	StrMinTimeCost   string `json:"min_time_cost"`
	StrMaxTimeCost   string `json:"max_time_cost"`
	AvgTimeCost      string `json:"avg_time_cost"`

	ErrorRate   string `json:"error_rate"`
	TimeoutRate string `json:"timeout_rate"`
}

func (*GraphStat) ReCalc

func (p *GraphStat) ReCalc()

type InletHTTP

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

func NewInletHTTP

func NewInletHTTP(opts ...option) *InletHTTP

func (*InletHTTP) CallBack

func (p *InletHTTP) CallBack(payload *spirit.Payload) (result interface{}, err error)

func (*InletHTTP) Error

func (p *InletHTTP) Error(payload *spirit.Payload) (result interface{}, err error)

func (*InletHTTP) Group

func (p *InletHTTP) Group(path string, router func(martini.Router), middlerWares ...martini.Handler)

func (*InletHTTP) Handler

func (p *InletHTTP) Handler(w http.ResponseWriter, r *http.Request)

func (*InletHTTP) OnMessageResponse

func (p *InletHTTP) OnMessageResponse(payload *spirit.Payload)

func (*InletHTTP) Option

func (p *InletHTTP) Option(opts ...option)

func (*InletHTTP) Requester

func (p *InletHTTP) Requester() Requester

func (*InletHTTP) Run

func (p *InletHTTP) Run()

type InletHTTPErrorResponseHandler

type InletHTTPErrorResponseHandler func(err error, w http.ResponseWriter, r *http.Request)

type InletHTTPRequestDecoder

type InletHTTPRequestDecoder func(body []byte) (map[string]interface{}, error)

type InletHTTPRequestPayloadHook

type InletHTTPRequestPayloadHook func(r *http.Request, graphName string, body []byte, payload *spirit.Payload) (err error)

type InletHTTPResponseHandler

type InletHTTPResponseHandler func(graphsResponse map[string]GraphResponse, w http.ResponseWriter, r *http.Request)

type NameValue

type NameValue struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

type Requester

type Requester interface {
	Request(graph spirit.MessageGraph, payload spirit.Payload, payloadRespChan chan spirit.Payload, errResp chan error) (msgId string, err error)
	OnMessageReceived(payload spirit.Payload)
	OnMessageError(payload spirit.Payload)
	OnMessageProcessed(messageId string)
	SetMessageSenderFactory(factory spirit.MessageSenderFactory)
	GetMessageSenderFactory() spirit.MessageSenderFactory
	SetTimeout(timeout time.Duration)
	GetTimeout() time.Duration
}

func NewClassicRequester

func NewClassicRequester() Requester

Jump to

Keyboard shortcuts

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