plugin

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2022 License: Apache-2.0 Imports: 3 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterPlugin

func RegisterPlugin(p Plugin) error

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

Jump to

Keyboard shortcuts

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