Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsRegistered ¶
func IsRegistered(plugin Plugin, opts ...PluginOption) bool
IsRegistered check plugin whether registered global. Notice plugin is not check whether is nil
func Register ¶
func Register(plugin Plugin, opts ...PluginOption) error
Register registers a global plugins
Types ¶
type Handler ¶
Handler is the plugin middleware handler which wraps an existing http.Handler passed in. Its the responsibility of the Handler to call the next http.Handler in the chain.
type Manager ¶
type Manager interface { Plugins(...PluginOption) []Plugin Register(Plugin, ...PluginOption) error }
Manager is the plugin manager which stores plugins and allows them to be retrieved. This is used by all the components of micro.
type Option ¶
type Option func(o *Options)
func WithCommand ¶
func WithCommand(cmd ...*cli.Command) Option
WithCommand adds commands to a plugin
type Options ¶
type Options struct { Name string Flags []cli.Flag Commands []*cli.Command Handlers []Handler Init func(*cli.Context) error }
Options are used as part of a new plugin
type Plugin ¶
type Plugin interface { // Global Flags Flags() []cli.Flag // Sub-commands Commands() []*cli.Command // Handle is the middleware handler for HTTP requests. We pass in // the existing handler so it can be wrapped to create a call chain. Handler() Handler // Init called when command line args are parsed. // The initialized cli.Context is passed in. Init(*cli.Context) error // Name of the plugin String() string }
Plugin is the interface for plugins to micro. It differs from go-micro in that it's for the micro API, Web, Sidecar, CLI. It's a method of building middleware for the HTTP side.
type PluginOption ¶
type PluginOption func(o *PluginOptions)
func Module ¶
func Module(m string) PluginOption
Module will scope the plugin to a specific module, e.g. the "api"
type PluginOptions ¶
type PluginOptions struct {
Module string
}