webservice

package module
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2021 License: MIT Imports: 23 Imported by: 0

README

webservice

Simple web service framework for golang.

License

MIT

Documentation

Index

Constants

View Source
const (
	// ErrorCodeSuccess indicates success
	ErrorCodeSuccess = 1
)

Variables

View Source
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

func GetDataBody added in v1.1.0

func GetDataBody(r *http.Request, logger Logger) (data []byte, err error)

GetDataBody get post/put/patch data

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

func (*Config) SetLogger added in v1.1.0

func (conf *Config) SetLogger(log interface{})

SetLogger set logger to config

type FormData added in v1.1.0

type FormData struct {
	Name     string
	Data     []byte
	Filename string
}

FormData stores raw value of form data

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

Jump to

Keyboard shortcuts

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