Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterPlugin ¶
RegisterPlugin register a plugin. Plugin which has the same name can't be registered twice. This method should be called before calling `runner.Run`.
Types ¶
type DefaultPlugin ¶ added in v0.4.0
type DefaultPlugin struct{}
DefaultPlugin provides the no-op implementation of the Plugin interface.
func (*DefaultPlugin) RequestFilter ¶ added in v0.4.0
func (*DefaultPlugin) RequestFilter(interface{}, http.ResponseWriter, pkgHTTP.Request)
func (*DefaultPlugin) ResponseFilter ¶ added in v0.4.0
func (*DefaultPlugin) ResponseFilter(interface{}, pkgHTTP.Response)
type Plugin ¶
type Plugin interface {
// Name returns the plguin name
Name() string
// ParseConf is the method to parse given plugin configuration. When the
// configuration can't be parsed, it will be skipped.
ParseConf(in []byte) (conf interface{}, err error)
// RequestFilter is the method to handle request.
// It is like the `http.ServeHTTP`, plus the ctx and the configuration created by
// ParseConf.
//
// When the `w` is written, the execution of plugin chain will be stopped.
// We don't use onion model like Gin/Caddy because we don't serve the whole request lifecycle
// inside the runner. The plugin is only a filter running at one stage.
RequestFilter(conf interface{}, w http.ResponseWriter, r pkgHTTP.Request)
// ResponseFilter is the method to handle response.
// This filter is currently only pre-defined and has not been implemented.
ResponseFilter(conf interface{}, w pkgHTTP.Response)
}
Plugin represents the Plugin
Click to show internal directories.
Click to hide internal directories.