Documentation ¶
Index ¶
Constants ¶
const (
// ErrorCodeSuccess indicates success
ErrorCodeSuccess = 1
)
Variables ¶
var ( // ErrorNotFound defines not found error ErrorNotFound = errors.New("not found") // ErrorWrongMethod defines wrong method method error ErrorWrongMethod = errors.New("wrong method") // ErrorParsedYet defines parsed error ErrorParsedYet = errors.New("request has parsed by others") // ErrorInvalidArgument defines invalid argument ErrorInvalidArgument = errors.New("invalid argument") )
Functions ¶
Types ¶
type Config ¶ added in v1.1.0
type Config struct { WebAddr string Port uint16 Statics map[string]string Handlers map[string]RequestHandlerFunc ReadTimeout time.Duration WriteTimeout time.Duration AuthMap map[string]map[string]int PagesTempLatesDir string PageGlobPattern string WidgetsTempLatesDir string WidgetGlobPattern string TemplatesRefreshInterval time.Duration Logger Logger Pprof bool TLSCert string TLSKey string UploadsDir string }
Config stores web service config
func BuildConfig ¶ added in v1.1.0
func BuildConfig() *Config
BuildConfig builds a default http config which can be convert to https config easy
type HTTPProxy ¶ added in v1.1.0
type HTTPProxy interface { ForwardRequest(w http.ResponseWriter, r *http.Request, target *url.URL) AgentRequest(r *http.Request, target *url.URL) (*http.Response, error) }
HTTPProxy defines http proxy interface
func BuildHTTPProxy ¶ added in v1.1.0
func BuildHTTPProxy(logger interface{}) HTTPProxy
BuildHTTPProxy builds http proxy object
type Logger ¶ added in v1.0.1
type Logger interface { // SetLevel SetLevel(uint8) CheckLevel(uint8) bool Write(string, bool, ...interface{}) Debug(...interface{}) Trace(...interface{}) Warn(...interface{}) Error(...interface{}) }
Logger defines logger interface
func ConvertLoggerMust ¶ added in v1.1.0
func ConvertLoggerMust(log interface{}) Logger
ConvertLoggerMust converts a object to Logger interface, build built-in logger if convert failed
type MultiFormData ¶ added in v1.1.0
type MultiFormData struct {
// contains filtered or unexported fields
}
MultiFormData defines multi form data object
func GetMultiFormData ¶ added in v1.1.0
func GetMultiFormData(r *http.Request, logger Logger) (mfd *MultiFormData, err error)
GetMultiFormData reads multi form data of request
func (MultiFormData) FormData ¶ added in v1.1.0
func (mfd MultiFormData) FormData(key string) (data *FormData, err error)
FormData get form date from form data set
func (MultiFormData) FormDataMD5 ¶ added in v1.1.0
func (mfd MultiFormData) FormDataMD5() (MD5 string)
FormDataMD5 computes multi form data md5
type RequestHandlerFunc ¶
type RequestHandlerFunc func(http.ResponseWriter, *http.Request, WebService) *ServiceResponse
RequestHandlerFunc defines union http request handler in this frame
if handler returned nil, frame will not response client; otherwise frame will response client with json from return value
type ServiceResponse ¶
type ServiceResponse struct { Status int `json:"status"` Message interface{} `json:"message"` Data interface{} `json:"data"` Indent bool `json:"-"` StatusCode int `json:"-"` }
ServiceResponse defines union web service response
func (ServiceResponse) String ¶ added in v1.1.0
func (sr ServiceResponse) String() string
type ServiceResponseData ¶ added in v1.1.0
type ServiceResponseData struct { Status int `json:"status"` Message string `json:"message"` Data json.RawMessage `json:"data"` }
ServiceResponseData defines union web service response data for parsing
func (ServiceResponseData) String ¶ added in v1.1.0
func (srd ServiceResponseData) String() string
type TemplatesManager ¶ added in v1.1.0
type TemplatesManager interface { // RenderTemplate render template to http.ResponseWriter RenderTemplate(w http.ResponseWriter, name string, data interface{}) error }
TemplatesManager defines templates manager interface definition
type WebService ¶
type WebService interface { // Close close web service Close() error // ServiceAddr returns service address ServiceAddr() string // PagesTempLatesDir returns page templates directory of web service PagesTempLatesDir() string // WidgetsTempLatesDir returns widget templates directory of web service WidgetsTempLatesDir() string // TemplatesManager get service related templates manager TemplatesManager() TemplatesManager }
WebService defines a web service interface definition
func StartWebService ¶ added in v1.1.0
func StartWebService(conf *Config) WebService
StartWebService starts a web service with config