Documentation
¶
Overview ¶
Package web 一个微型的 web 框架
Index ¶
Constants ¶
const Version = "0.44.0"
Version 当前框架的版本
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Command ¶ added in v0.41.0
type Command struct {
Name string // 程序名称
Version string // 程序版本
// 在运行服务之前对 Server 的额外操作
//
// 比如添加模块等。不可以为空。
Init func(s *Server, action string) error
// 触发退出的信号
//
// 为空(nil 或是 []) 表示没有。
Signals []os.Signal
// 在初始化 Server 之前对 Options 的二次处理
//
// 可以为空。
Options func(*Options)
// 命令行输出信息的通道
//
// 默认为 os.Stdout。
Out io.Writer
// 配置文件的加载器
//
// 为空则会给定一个能解析 .xml、.yaml、.yml 和 .json 文件的默认对象。
// 该值可能会被 Options 操作所覆盖。
Files *Files
// 配置文件的文件名
//
// 仅是文件名,相对的路径由命令行 -f 指定。
// 如果为空,则直接采用 &Options{} 初始化 Server 对象。
ConfigFilename string
// 本地化的相关操作接口
//
// 如果为空,则会被初始化一个空对象,该值可能会被 Options 操作所覆盖。
Catalog *catalog.Builder
// 通过信号触发退出时的等待时间
SignalTimeout time.Duration
// contains filtered or unexported fields
}
Command 提供一种简单的命令行生成方式
由 Command 生成的命令行带以下几个参数:
v 显示版本号;
h 显示帮助信息;
f 指定当前程序可读取的文件系统,这最终会转换成 Server.FS;
a 执行的动作,该值传递给 Init,由用户根据 a 决定初始化的方式,比如是安装数据还是注册路由等;
s 以服务的形式运行;
// 本地化命令行的帮助信息 builder := catalog.NewBuilder() builder.SetString("show help", "显示帮助信息") builder.SetString("show version", "显示版本信息")
cmd := &web.Command{ Name: "app", Version: "1.0.0", Init: func(s *Server) error {...}, Catalog: builder, }
cmd.Exec()
Command 的本地化信息采用当前用户的默认语言, 由 github.com/issue9/localeutil.DetectUserLanguageTag 决定。 如果想让 Command 支持本地化操作,最起码需要向 Catalog 注册以下几条信息:
-v show version -h show help -f set file system -a action -s run as server
NOTE: Command 并不是必须的,只是为用户提供了一种简便的方式生成命令行, 相对地也会有诸多限制,如果觉得不适用,可以自行调用 NewServer 初始化 Server。
type Files ¶ added in v0.44.0
type Files = serialization.Files
type HandlerFunc ¶ added in v0.33.0
type HandlerFunc = server.HandlerFunc
type LocaleStringer ¶ added in v0.43.0
type LocaleStringer = localeutil.LocaleStringer
LocaleStringer 本地化字符串需要实在的接口
部分 error 返回可能也实现了该接口。
func Phrase ¶ added in v0.42.0
func Phrase(key string, v ...interface{}) LocaleStringer
Phrase 生成本地化的语言片段
type Responser ¶ added in v0.40.0
func NotImplemented ¶ added in v0.44.0
func NotImplemented() Responser
type ResultFields ¶ added in v0.42.0
type ResultFields = server.ResultFields
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
web
module
|
|
|
Package config 提供了从配置文件初始化 server.Options 的方法
|
Package config 提供了从配置文件初始化 server.Options 的方法 |
|
internal
|
|
|
charsetdata
Package charsetdata 用于测试的字符集数据
|
Package charsetdata 用于测试的字符集数据 |
|
errs
Package errs 对错误信息的二次处理
|
Package errs 对错误信息的二次处理 |
|
filesystem
Package filesystem 提供文件系统的相关操作
|
Package filesystem 提供文件系统的相关操作 |
|
Package locales 为 web 包提供了本地化的内容 并不主动加载这些信息,用户可以根据自身的需求引用 Locales。
|
Package locales 为 web 包提供了本地化的内容 并不主动加载这些信息,用户可以根据自身的需求引用 Locales。 |
|
Package serialization 序列化相关的操作
|
Package serialization 序列化相关的操作 |
|
form
Package form 用于处理 www-form-urlencoded 编码 func read(ctx *web.Context) { vals := urls.Values{} ctx.Read(vals) } func write(ctx *web.Context) { vals := urls.Values{} vals.Add("name", "caixw") return web.Object(http.StatusOK, vals, nil) } form 用户可以通过定义 form 标签自定义输出的名称,比如: type Username struct { Name string `form:"name"` Age int } 转换成 form-data 可能是以下样式: name=jjj&age=18 该方式对数据类型有一定限制: 1.
|
Package form 用于处理 www-form-urlencoded 编码 func read(ctx *web.Context) { vals := urls.Values{} ctx.Read(vals) } func write(ctx *web.Context) { vals := urls.Values{} vals.Add("name", "caixw") return web.Object(http.StatusOK, vals, nil) } form 用户可以通过定义 form 标签自定义输出的名称,比如: type Username struct { Name string `form:"name"` Age int } 转换成 form-data 可能是以下样式: name=jjj&age=18 该方式对数据类型有一定限制: 1. |
|
gob
Package gob 提供 GOB 格式的编解码
|
Package gob 提供 GOB 格式的编解码 |
|
html
Package html 提供输出 HTML 内容的解码函数 srv := NewServer() tpl := template.ParseFiles(...) srv.Mimetypes().Add("text/html", html.Marshal, nil) func handle(ctx *web.Context) Responser { return Object(200, html.Tpl(tpl, "index", map[string]interface{}{...}), nil) }
|
Package html 提供输出 HTML 内容的解码函数 srv := NewServer() tpl := template.ParseFiles(...) srv.Mimetypes().Add("text/html", html.Marshal, nil) func handle(ctx *web.Context) Responser { return Object(200, html.Tpl(tpl, "index", map[string]interface{}{...}), nil) } |
|
jsonp
Package jsonp JSONP 序列化操作
|
Package jsonp JSONP 序列化操作 |
|
text
Package text 针对文本内容的编解码实现
|
Package text 针对文本内容的编解码实现 |
|
text/testobject
Package testobject 用于测试 mimetype 的对象
|
Package testobject 用于测试 mimetype 的对象 |
|
Package server web 服务管理
|
Package server web 服务管理 |