Documentation ¶
Overview ¶
Package web 一个微型的 RESTful API 框架。
配置文件
配置文件的映射对象在 internal/config 包中,其中有各个字段的详细说明。 用户如果需要添加一些自定义的配置项,需要自行再添加其它名称的配置文件, 文件地址最好通过 web.File 来获取,这样可以和框架本身的配置文件存在同一目录下。
框架了除了本身的 web.yaml 配置文件之外,还有 logs.xml,用于定制日志的相关内容。 具体的日志相关信息,可以访问 https://github.com/issue9/logs 包。
字符集和媒体类型
encoding 包通过 AddMarshal 和 AddUnmarshal 给用户提供相关功能。
当然用户也可以直接构建一个 context.Context 对象来生成一个一次性的对象。
返回结果
框架内置了一个 result 包,用以统一向用户返回的错误信息,这是一个可选的包, 如果要使用,需要在 web.Run() 之前调用 result.NewMessages() 注册相关的错误代码。
模块
用户可以把功能相对独立的内容当作一个模块进行封装。框架本身提供了 web.NewModule() 对模块进行了依赖管理。用户可以在 web.NewModule() 返回对象中, 对模块进行初始化和路由项的添加。所有模块会在 web.Run() 中进行初始化。
Index ¶
- Constants
- func AddCompress(name string, f compress.WriterFunc) error
- func AddErrorHandler(f func(http.ResponseWriter, int), status ...int) error
- func Close() error
- func File(path ...string) string
- func Grace(sig ...os.Signal)
- func Handler() (http.Handler, error)
- func Init(dir string) (err error)
- func Install(version string) error
- func IsDebug() bool
- func LoadConfig(path string, v interface{}) error
- func Modules() []*module.Module
- func Mux() *mux.Mux
- func RegisterOnShutdown(f func())
- func Run() errordeprecated
- func Serve() error
- func SetCompress(name string, f compress.WriterFunc)
- func SetErrorHandler(f func(http.ResponseWriter, int), status ...int)
- func SetMiddleware(m middleware.Middleware)
- func Shutdown() error
- func URL(path string) string
- type Context
- type Module
- type Result
Constants ¶
const ( // Version 当前框架的版本 Version = "0.16.1+20180905" // MinimumGoVersion 需求的最低 Go 版本 // 修改此值,记得同时修改 .travis.yml 文件中的版本依赖。 MinimumGoVersion = "1.10" )
Variables ¶
This section is empty.
Functions ¶
func AddCompress ¶
func AddCompress(name string, f compress.WriterFunc) error
AddCompress 添加压缩方法。框架本身已经指定了 gzip 和 deflate 两种方法。
NOTE: 只有在 web.Init() 之前调用才能启作用。
func AddErrorHandler ¶
func AddErrorHandler(f func(http.ResponseWriter, int), status ...int) error
AddErrorHandler 添加对错误状态码的处理方式。
status 表示状态码,如果为 0,则表示所有未指定的状态码。
func Grace ¶
Grace 指定触发 Shutdown() 的信号,若为空,则任意信号都触发。
多次调用,则每次指定的信号都会起作用,如果由传递了相同的值, 则有可能多次触发 Shutdown()。
NOTE: 传递空值,与不调用,其结果是不同的。 若是不调用,则不会处理任何信号;若是传递空值调用,则是处理任何要信号。
func RegisterOnShutdown ¶ added in v0.16.1
func RegisterOnShutdown(f func())
RegisterOnShutdown 注册在关闭服务时需要执行的操作。
func SetCompress ¶
func SetCompress(name string, f compress.WriterFunc)
SetCompress 修改或是添加压缩方法。
NOTE: 只有在 web.Init() 之前调用才能启作用。
func SetErrorHandler ¶
func SetErrorHandler(f func(http.ResponseWriter, int), status ...int)
SetErrorHandler 设置指定状态码对应的处理函数
有则修改,没有则添加
status 表示状态码,如果为 0,则表示所有未指定的状态码。
func SetMiddleware ¶
func SetMiddleware(m middleware.Middleware)
SetMiddleware 设置一个全局的中间件,多次设置,只有最后一次会启作用。
Types ¶
type Context ¶
Context 等同于 context.Context,方便调用者使用
func NewContext ¶
func NewContext(w http.ResponseWriter, r *http.Request) *Context
NewContext 根据当前配置,生成 context.Context 对象,若是出错则 panic
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
web
Module
|
|
Package config 提供了对多种格式配置文件的支持
|
Package config 提供了对多种格式配置文件的支持 |
Package context 用于处理单个请求的上下文关系。
|
Package context 用于处理单个请求的上下文关系。 |
Package encoding 提供了框架内对编码和字符集功能的支持。
|
Package encoding 提供了框架内对编码和字符集功能的支持。 |
encodingtest
Package encodingtest 针对文本内容的编解码实现,仅作为测试用例。
|
Package encodingtest 针对文本内容的编解码实现,仅作为测试用例。 |
form
Package form 用于处理 www-form-urlencoded 编码 func read(w http.ResponseWriter, r *http.Request) { ctx := web.New(w, r) vals := urls.Values{} !ctx.Read(vals) } func write(w http.ResponseWriter, r *http.Request) { ctx := web.New(w, r) vals := urls.Values{} vals.Add("name", "caixw") ctx.Render(http.StatusOK, vals, nil) }
|
Package form 用于处理 www-form-urlencoded 编码 func read(w http.ResponseWriter, r *http.Request) { ctx := web.New(w, r) vals := urls.Values{} !ctx.Read(vals) } func write(w http.ResponseWriter, r *http.Request) { ctx := web.New(w, r) vals := urls.Values{} vals.Add("name", "caixw") ctx.Render(http.StatusOK, vals, nil) } |
gob
Package gob 提供 GOB 格式的编解码
|
Package gob 提供 GOB 格式的编解码 |
html
Package html 提供输出 HTML 内容的 encoding.MarshalFunc 函数。
|
Package html 提供输出 HTML 内容的 encoding.MarshalFunc 函数。 |
internal
|
|
app
Package app 核心功能的实现
|
Package app 核心功能的实现 |
app/middlewares
Package middlewares 提供一系列中间
|
Package middlewares 提供一系列中间 |
app/modules
Package modules 处理模块信息
|
Package modules 处理模块信息 |
app/webconfig
Package webconfig web.yaml 配置文件对应的内容。
|
Package webconfig web.yaml 配置文件对应的内容。 |
errors
Package errors 对状态码错误的处理方式
|
Package errors 对状态码错误的处理方式 |
Package module 提供模块的的相关功能。
|
Package module 提供模块的的相关功能。 |
Package result 提供了一套用于描述向客户端反馈错误信息的机制。
|
Package result 提供了一套用于描述向客户端反馈错误信息的机制。 |