config

package
v0.0.0-...-3cf5444 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2018 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ConfigType_XML xml config file
	ConfigType_XML = "xml"
	// ConfigType_JSON json config file
	ConfigType_JSON = "json"
	// ConfigType_Yaml yaml config file
	ConfigType_Yaml = "yaml"
)
View Source
const (

	//default timeout Millisecond for per request handler
	DefaultRequestTimeOut = 30000
)

Variables

This section is empty.

Functions

func MarshalJSON

func MarshalJSON(v interface{}) (out []byte, err error)

MarshalJSON returns the JSON encoding of v.

func MarshalJSONString

func MarshalJSONString(v interface{}) (out string)

MarshalJSONString returns the JSON encoding string format of v.

func MarshalXML

func MarshalXML(v interface{}) (out []byte, err error)

MarshalXML returns the XML encoding of v.

func MarshalXMLString

func MarshalXMLString(v interface{}) (out string)

MarshalXMLString returns the XML encoding string format of v.

func MarshalYaml

func MarshalYaml(v interface{}) (out []byte, err error)

MarshalYaml Marshal serializes the value provided into a YAML document. For example:

type T struct {
    F int "a,omitempty"
    B int
}
yaml.Marshal(&T{B: 2}) // Returns "b: 2\n"
yaml.Marshal(&T{F: 1}} // Returns "a: 1\nb: 0\n"

func MarshalYamlString

func MarshalYamlString(v interface{}) (out string)

MarshalYamlString returns the Ymal encoding string format of v.

func ParseConfigSetJSON

func ParseConfigSetJSON(configFile string) (core.ConcurrenceMap, error)

ParseConfigSetJSON include ConfigSet json file

func ParseConfigSetXML

func ParseConfigSetXML(configFile string) (core.ConcurrenceMap, error)

ParseConfigSetXML include ConfigSet xml file

func ParseConfigSetYaml

func ParseConfigSetYaml(configFile string) (core.ConcurrenceMap, error)

ParseConfigSetYaml include ConfigSet yaml file

func UnmarshalJSON

func UnmarshalJSON(content []byte, v interface{}) error

UnmarshalJSON parses the JSON-encoded data and stores the result in the value pointed to by v.

func UnmarshalXML

func UnmarshalXML(content []byte, v interface{}) error

UnmarshalXML parses the XML-encoded data and stores the result in the value pointed to by v, which must be an arbitrary struct, slice, or string. Well-formed data that does not fit into v is discarded.

func UnmarshalYaml

func UnmarshalYaml(content []byte, v interface{}) error

UnmarshalYaml decodes the first document found within the in byte slice and assigns decoded values into the out value. For example:

type T struct {
    F int `yaml:"a,omitempty"`
    B int
}
var t T
yaml.Unmarshal([]byte("a: 1\nb: 2"), &t)

Types

type AppNode

type AppNode struct {
	LogPath      string `xml:"logpath,attr"`      //文件方式日志目录,如果为空,默认当前目录
	EnabledLog   bool   `xml:"enabledlog,attr"`   //是否启用日志记录
	RunMode      string `xml:"runmode,attr"`      //运行模式,目前支持development、production
	PProfPort    int    `xml:"pprofport,attr"`    //pprof-server 端口,不能与主Server端口相同
	EnabledPProf bool   `xml:"enabledpprof,attr"` //是否启用pprof server,默认不启用
}

AppNode dotweb app global config

func NewAppNode

func NewAppNode() *AppNode

type Config

type Config struct {
	XMLName        xml.Name          `xml:"config" json:"-" yaml:"-"`
	App            *AppNode          `xml:"app"`
	ConfigSetNodes []*ConfigSetNode  `xml:"configset>set"`
	Offline        *OfflineNode      `xml:"offline"`
	Server         *ServerNode       `xml:"server"`
	Session        *SessionNode      `xml:"session"`
	Routers        []*RouterNode     `xml:"routers>router"`
	Groups         []*GroupNode      `xml:"groups>group"`
	Middlewares    []*MiddlewareNode `xml:"middlewares>middleware"`
	ConfigSet      core.ReadonlyMap  `json:"-" yaml:"-"`
}

Config dotweb app config define

func InitConfig

func InitConfig(configFile string, confType ...interface{}) (config *Config, err error)

初始化配置文件 如果发生异常,返回异常

func MustInitConfig

func MustInitConfig(configFile string, confType ...interface{}) *Config

init config file If an exception occurs, will be panic it

func NewConfig

func NewConfig() *Config

NewConfig create new config

func (*Config) IncludeConfigSet

func (conf *Config) IncludeConfigSet(configFile string, confType string) error

IncludeConfigSet include ConfigSet file to Dotweb.Config.ConfigSet, can use ctx.ConfigSet to use your data same key will cover oldest value support xml\json\yaml

type ConfigSet

type ConfigSet struct {
	XMLName        xml.Name         `xml:"config" json:"-" yaml:"-"`
	Name           string           `xml:"name,attr"`
	ConfigSetNodes []*ConfigSetNode `xml:"set"`
}

ConfigSet 单元配置组,包含一系列单元配置节点

type ConfigSetNode

type ConfigSetNode struct {
	Key   string `xml:"key,attr"`
	Value string `xml:"value,attr"`
}

ConfigSetNode update for issue #16 配置文件

type GroupNode

type GroupNode struct {
	Path        string            `xml:"path,attr"`
	Routers     []*RouterNode     `xml:"router"`
	Middlewares []*MiddlewareNode `xml:"middleware"`
	IsUse       bool              `xml:"isuse,attr"` //是否启用,默认false
}

GroupNode dotweb app's group router config

type MiddlewareNode

type MiddlewareNode struct {
	Name  string `xml:"name,attr"`
	IsUse bool   `xml:"isuse,attr"` //是否启用,默认false
}

MiddlewareNode dotweb app's middleware config

type OfflineNode

type OfflineNode struct {
	Offline     bool   `xml:"offline,attr"`     //是否维护,默认false
	OfflineText string `xml:"offlinetext,attr"` //当设置为维护,默认显示内容,如果设置url,优先url
	OfflineUrl  string `xml:"offlineurl,attr"`  //当设置为维护,默认维护页地址,如果设置url,优先url
}

OfflineNode dotweb app offline config

func NewOfflineNode

func NewOfflineNode() *OfflineNode

type RouterNode

type RouterNode struct {
	Method      string            `xml:"method,attr"`
	Path        string            `xml:"path,attr"`
	HandlerName string            `xml:"handler,attr"`
	Middlewares []*MiddlewareNode `xml:"middleware"`
	IsUse       bool              `xml:"isuse,attr"` //是否启用,默认false
}

RouterNode dotweb app's router config

type ServerNode

type ServerNode struct {
	EnabledListDir           bool   `xml:"enabledlistdir,attr"`           //设置是否启用目录浏览,仅对Router.ServerFile有效,若设置该项,则可以浏览目录文件,默认不开启
	EnabledRequestID         bool   `xml:"enabledrequestid,attr"`         //设置是否启用唯一请求ID,默认不开启,开启后使用32位UUID
	EnabledGzip              bool   `xml:"enabledgzip,attr"`              //是否启用gzip
	EnabledAutoHEAD          bool   `xml:"enabledautohead,attr"`          //设置是否自动启用Head路由,若设置该项,则会为除Websocket\HEAD外所有路由方式默认添加HEAD路由,默认不开启
	EnabledAutoCORS          bool   `xml:"enabledautocors,attr"`          //设置是否自动跨域支持,若设置,默认“GET, POST, PUT, DELETE, OPTIONS”全部请求均支持跨域
	EnabledIgnoreFavicon     bool   `xml:"enabledignorefavicon,attr"`     //设置是否忽略favicon.ico请求,若设置,网站将把所有favicon.ico请求直接空返回
	EnabledBindUseJsonTag    bool   `xml:"enabledbindusejsontag,attr"`    //设置bind是否启用json标签,默认不启用,若设置,bind自动识别json tag,忽略form tag
	Port                     int    `xml:"port,attr"`                     //端口
	EnabledTLS               bool   `xml:"enabledtls,attr"`               //是否启用TLS模式
	TLSCertFile              string `xml:"tlscertfile,attr"`              //TLS模式下Certificate证书文件地址
	TLSKeyFile               string `xml:"tlskeyfile,attr"`               //TLS模式下秘钥文件地址
	IndexPage                string `xml:"indexpage,attr"`                //默认index页面
	EnabledDetailRequestData bool   `xml:"enableddetailrequestdata,attr"` //设置状态数据是否启用详细页面统计,默认不启用,请特别对待,如果站点url过多,会导致数据量过大
}

ServerNode dotweb app's httpserver config

func NewServerNode

func NewServerNode() *ServerNode

type SessionNode

type SessionNode struct {
	EnabledSession bool   `xml:"enabled,attr"`  //启用Session
	SessionMode    string `xml:"mode,attr"`     //session模式,目前支持runtime、redis
	Timeout        int64  `xml:"timeout,attr"`  //session超时时间,分为单位
	ServerIP       string `xml:"serverip,attr"` //远程session serverip
	UserName       string `xml:"username,attr"` //远程session username
	Password       string `xml:"password,attr"` //远程session password
}

SessionNode dotweb app's session config

func NewSessionNode

func NewSessionNode() *SessionNode

Jump to

Keyboard shortcuts

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