Documentation ¶
Index ¶
- func ImposterHandler(imposter Imposter) http.HandlerFunc
- func MatcherBySchema(imposter Imposter) mux.MatcherFunc
- func PrepareAccessControl(config killgrave.ConfigCORS) (h []handlers.CORSOption)
- type Imposter
- type ImposterConfig
- type ImposterFs
- type ImposterType
- type Proxy
- type Request
- type Response
- type ResponseDelay
- type Server
- type ServerOpt
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ImposterHandler ¶
func ImposterHandler(imposter Imposter) http.HandlerFunc
ImposterHandler create specific handler for the received imposter
func MatcherBySchema ¶
func MatcherBySchema(imposter Imposter) mux.MatcherFunc
MatcherBySchema check if the request matching with the schema file
func PrepareAccessControl ¶
func PrepareAccessControl(config killgrave.ConfigCORS) (h []handlers.CORSOption)
PrepareAccessControl Return options to initialize the mock server with default access control
Types ¶
type Imposter ¶
type Imposter struct { BasePath string `json:"-" yaml:"-"` Path string `json:"-" yaml:"-"` Request Request `json:"request"` Response Response `json:"response"` }
Imposter define an imposter structure
func (*Imposter) CalculateFilePath ¶
CalculateFilePath calculate file path based on basePath of imposter directory
type ImposterConfig ¶
type ImposterConfig struct { Type ImposterType FilePath string }
ImposterConfig is used to load imposters based on which type they are
type ImposterFs ¶
type ImposterFs struct {
// contains filtered or unexported fields
}
func NewImposterFS ¶
func NewImposterFS(fs afero.Fs) ImposterFs
func (ImposterFs) FindImposters ¶
func (i ImposterFs) FindImposters(impostersDirectory string, impostersCh chan []Imposter) error
type ImposterType ¶
type ImposterType int
ImposterType allows to know the imposter type we're dealing with
const ( // JSONImposter allows to know when we're dealing with a JSON imposter JSONImposter ImposterType = iota // YAMLImposter allows to know when we're dealing with a YAML imposter YAMLImposter )
type Proxy ¶
type Proxy struct {
// contains filtered or unexported fields
}
Proxy represent reverse proxy server.
func (*Proxy) Handler ¶
func (p *Proxy) Handler() http.HandlerFunc
Handler returns handler that sends request to another server.
type Request ¶
type Request struct { Method string `json:"method"` Endpoint string `json:"endpoint"` SchemaFile *string `json:"schemaFile"` Params *map[string]string `json:"params"` Headers *map[string]string `json:"headers"` }
Request represent the structure of real request
type Response ¶
type Response struct { Status int `json:"status"` Body string `json:"body"` BodyFile *string `json:"bodyFile" yaml:"bodyFile"` Headers *map[string]string `json:"headers"` Delay ResponseDelay `json:"delay" yaml:"delay"` }
Response represent the structure of real response
type ResponseDelay ¶
type ResponseDelay struct {
// contains filtered or unexported fields
}
ResponseDelay represent time delay before server responds.
func (*ResponseDelay) Delay ¶
func (d *ResponseDelay) Delay() time.Duration
Delay return random time.Duration with respect to specified time range.
func (*ResponseDelay) UnmarshalJSON ¶
func (d *ResponseDelay) UnmarshalJSON(data []byte) error
UnmarshalJSON of json.Unmarshaler interface. Input should be string, consisting of substring that can be parsed by time.ParseDuration, or two similar substrings seperated by ":".
func (*ResponseDelay) UnmarshalYAML ¶
func (d *ResponseDelay) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML of yaml.Unmarshaler interface. Input should be string, consisting of substring that can be parsed by time.ParseDuration, or two similar substrings seperated by ":".
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server definition of mock server
func NewServer ¶
func NewServer(p string, r *mux.Router, httpServer *http.Server, proxyServer *Proxy, secure bool, fs ImposterFs) Server
NewServer initialize the mock server
func (*Server) Build ¶
Build read all the files on the impostersPath and add different handlers for each imposter