Documentation
¶
Overview ¶
Package app 核心功能的实现
Index ¶
- func Grace(app *App, sig ...os.Signal)
- type App
- func (app *App) AddCompresses(m map[string]compress.WriterFunc) error
- func (app *App) AddMessages(status int, msgs map[int]string)
- func (app *App) Close() error
- func (app *App) ErrorHandlers() *errorhandler.ErrorHandler
- func (app *App) IsDebug() bool
- func (app *App) LocalPrinter(tag language.Tag, opts ...xmessage.Option) *xmessage.Printer
- func (app *App) Location() *time.Location
- func (app *App) Messages(p *xmessage.Printer) map[int]string
- func (app *App) Mimetypes() *mimetype.Mimetypes
- func (app *App) NewResult(code int) Result
- func (app *App) Path(p string) string
- func (app *App) Serve() (err error)
- func (app *App) Server() *http.Server
- func (app *App) Shutdown() error
- func (app *App) URL(path string) string
- type GetResultFunc
- type Result
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type App ¶
App 程序运行实例
func New ¶
func New(webconf *webconfig.WebConfig, logs *logs.Logs, get GetResultFunc) (*App, error)
New 声明一个新的 App 实例
func (*App) AddCompresses ¶ added in v0.25.0
func (app *App) AddCompresses(m map[string]compress.WriterFunc) error
AddCompresses 添加压缩处理函数
func (*App) AddMessages ¶ added in v0.26.0
AddMessages 添加一组错误信息。
status 指定了该错误代码反馈给客户端的 HTTP 状态码; msgs 中,键名表示的是该错误的错误代码; 键值表示具体的错误描述内容。
func (*App) ErrorHandlers ¶ added in v0.21.0
func (app *App) ErrorHandlers() *errorhandler.ErrorHandler
ErrorHandlers 错误处理功能
func (*App) LocalPrinter ¶ added in v0.25.0
LocalPrinter 获取本地化的输出对象
func (*App) Serve ¶
Serve 加载各个模块的数据,运行路由,执行监听程序。
当调用 Shutdown 关闭服务时,会等待其完成未完的服务,才返回 http.ErrServerClosed
type GetResultFunc ¶ added in v0.26.0
GetResultFunc 用于生成 Result 接口对象的函数
type Result ¶ added in v0.26.0
type Result interface { error // 添加详细的内容 Add(key, val string) // 是否存在详细的错误信息 // // 如果有通过 Add 添加内容,那么应该返回 true HasDetail() bool // HTTP 状态码 // // 最终会经此值作为 HTTP 状态会返回给用户 Status() int }
Result 提供了自定义错误码的功能
比如类似以下的错误内容:
{ 'message': 'error message', 'code': 4000001, 'detail':[ {'field': 'username': 'message': '已经存在相同用户名'}, {'field': 'username': 'message': '已经存在相同用户名'}, ] }
用户可以根据自己的需求,在出错时,展示自定义的错误码以及相关的错误信息。 其中通过 Add 和 Set 可以添加具体的字段错误信息。
可以查看 internal/resulttest 查看 Result 的实现方式。
Click to show internal directories.
Click to hide internal directories.