Documentation
¶
Index ¶
Constants ¶
View Source
const ( // ErrInvalidPluginHandler is returned when a plugin handler is not valid ErrInvalidPluginHandler = errors.Error("plugin handler not valid") // ErrExpectedEndParen is returned when an ending parenthesis is missing ErrExpectedEndParen = errors.Error("expected ending parenthesis") )
View Source
const ( // ErrGroupNotFound is returned when a group cannot be found by name ErrGroupNotFound = errors.Error("group not found") )
View Source
const ( // ErrInvalidRoot is returned whe a root is longer than the request path ErrInvalidRoot = errors.Error("invalid root, cannot be longer than request path") )
View Source
const ( // ErrProtectedFlag is returned when a protected flag is used ErrProtectedFlag = errors.Error("cannot use protected flag") )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Command ¶
type Command struct {
Name string `toml:"name"`
Usage string `toml:"usage"`
Require string `toml:"require"`
Prehook string `toml:"prehook"`
Handler string `toml:"handler"`
Posthook string `toml:"posthook"`
}
Command represents a command entry
type Config ¶
type Config struct {
Name string `toml:"name"`
Dir string `toml:"dir"`
Port uint16 `toml:"port"`
TLSPort uint16 `toml:"tlsPort"`
TLSDir string `toml:"tlsDir"`
ErrorLogger func(error)
IncludeConfig
PerformUpdate bool `toml:"-"`
Flags map[string]string `toml:"-"`
// Plugin keys as they are referenced by the plugins store
PluginKeys []string
ExampleRequests map[string]*Request
ExampleResponses map[string]*Response
}
Config is the configuration needed to initialize a new instance of Service
type Flag ¶
type Flag struct {
Name string `toml:"name"`
DefaultValue string `toml:"defaultValue"`
Usage string `toml:"usage"`
}
Flag represents a flag entry
type Group ¶
type Group struct {
Name string `toml:"name"`
// Route group
Group string `toml:"group"`
// HTTP method
Method string `toml:"method"`
// HTTP path
HTTPPath string `toml:"httpPath"`
// Plugin handlers
Handlers []string `toml:"handlers"`
HTTPHandlers []common.Handler `toml:"-"`
G common.Group `toml:"-"`
// Requests are keys to the request map which includes example request/response data for docs and tests
Requests map[string]*Request
}
Group represents a route group
type IncludeConfig ¶
type IncludeConfig struct {
// Application environment
Environment map[string]string `toml:"env"`
// Allow included files to add includes
Include []string `toml:"include"`
// Specify which plugins are in scope
Plugins []string `toml:"plugins"`
// Commands are the dynamic commands specified in config
CommandEntries []*Command `toml:"command"`
// Flags are the dynamic flags specified in config
FlagEntries []*Flag `toml:"flag"`
// Groups are the route groups
Groups []*Group `toml:"group"`
// Routes are the routes to listen for and serve
Routes []*Route `toml:"route"`
// Requests are example requests for docs/tests
Requests []*Request `toml:"request"`
// Responses are example responses for docs/tests
Responses []*Response `toml:"response"`
}
IncludeConfig will include routes
type PluginConfig ¶
type PluginConfig struct {
// Specify which plugins are in scope
Plugins []string `toml:"plugins"`
}
PluginConfig is abbreviated import for vpm use case
type Request ¶
type Request struct {
// ID
Name string `toml:"name"`
Group string `toml:"group"`
Query map[string]string `toml:"query"`
Body map[string]string `toml:"body"`
Responses []string `toml:"responses"`
ResponseExamples []*Response `toml:"-"`
// Links
Parent string `toml:"parent"`
// contains filtered or unexported fields
}
Request is an example requests for docs/tests
func (*Request) InheritFrom ¶
InheritFrom ensures family tree is populated and overridden
type Response ¶
type Response struct {
// ID
Name string `toml:"name"`
// Links
Parent string `toml:"parent"`
// Inheritable vals
Code int `toml:"code"`
Data map[string]string `toml:"data"`
// contains filtered or unexported fields
}
Response is an example response for docs/tests
func (*Response) InheritFrom ¶
InheritFrom ensures family tree is populated and overridden
type Route ¶
type Route struct {
// Target plug-in handler
HTTPHandlers []common.Handler `toml:"-"`
// Route name/description
Name string `toml:"name"`
// Route group
Group string `toml:"group"`
// HTTP method
Method string `toml:"method"`
// HTTP path
HTTPPath string `toml:"httpPath"`
// Directory or file to serve
Target string `toml:"target"`
// Plugin handlers
Handlers []string `toml:"handlers"`
RequestExample *Request
}
Route represents a listening route
Click to show internal directories.
Click to hide internal directories.