惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
F
Fortinet All Blogs
I
InfoQ
Jina AI
Jina AI
有赞技术团队
有赞技术团队
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
Recent Announcements
Recent Announcements
aimingoo的专栏
aimingoo的专栏
雷峰网
雷峰网
B
Blog RSS Feed
C
Check Point Blog
Y
Y Combinator Blog
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Hugging Face - Blog
Hugging Face - Blog
Microsoft Security Blog
Microsoft Security Blog
Engineering at Meta
Engineering at Meta
G
Google Developers Blog

博客园 - 基点项目师

dotweb now released to Version 1.5 dotweb框架之旅 [四] - 常用对象-HttpContext dotweb框架之旅 [三] - 常用对象-HttpServer dotweb框架之旅 [一] - HelloWorld 对 dotweb 框架进行统一的自定义错误处理 go服务端----使用dotweb框架搭建简易服务 对Golang有兴趣的朋友,推荐一款go语言Web框架-dotweb Nginx日志文件切割 linux安装PHP-memcache-redis扩展 微信公众平台开发 - 页面自适应 linux 安装 mongodb linux 安装 node.js nginx支持php配置 Linux 安装 php linux 安装nginx 如何设计自适应网页 ThinkDev.Data更新日志 ThinkDev.Logging-Queue模块介绍 Windows准备Node.js运行与开发环境
dotweb框架之旅 [二] - 常用对象-App(dotweb)
基点项目师 · 2017-10-14 · via 博客园 - 基点项目师

dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿。

框架地址:https://github.com/devfeel/dotweb

dotweb包含以下几个常用对象:

  • App(dotweb) App容器,为Web请求处理提供必要的容器类功能。
  • HttpServer 用于真正处理Web请求的服务模块。
  • HttpContext 用于提供单次请求处理中请求信息与响应信息的快捷处理与唯一入口。
  • Response 用于从服务器向用户发送输出的结果。
  • Request 用于从用户那里取得信息。
  • Session 用于存储关于某个连接会话的信息,或者修改相关的设置。目前支持存储本机内存与Redis分布式。

本章开始,将对这系列对象做常用场景的介绍。

App对象,在dotweb中定义为DotWeb,在框架中,主要承担为Web请求处理提供必要的容器类功能,比如启动Web监听、配置初始化、设置工作模式、设置日志、设置缓存等,同时也承担一系列快捷功能入口。

主要属性:

属性 描述 默认值
HttpServer
App承载的WebServer对象
NewHttpServer()
Config
全局配置信息,映射dotweb.conf
config.NewConfig()
Middlewares
App级别的中间件集合
make([]Middleware, 0)
ExceptionHandler
自定义处理异常方法
DefaultHTTPErrorHandler()
NotFoundHandler
自定义404请求处理方法
DefaultNotFoundHandler()
MethodNotAllowedHandler
自定义405请求处理方法
DefaultMethodNotAllowedHandler()
Items
App级别全局内存kv存储
NewItemContext()
OfflineServer
维护WebServer
NewOfflineServer()

主要方法

方法 描述
Start()
 根据配置启动Web端口监听,若发生错误,返回具体error对象
ListenAndServe(addr string)
 指定host:port,根据配置启动Web端口监听
Use(m ...Middleware)
 注册中间件,所有请求共享
SetDevelopmentMode()\SetProductionMode()
 设置开发模式\生产模式
Cache()
 提供全局内存缓存入口
UseRequestLog()
 启用基础请求日志中间件
SetPProfConfig()
 设置pprof监听端口信息
SetLogger(log logger.AppLog)
 设置自定义日志插件

常规使用代码:

func main() {
    //初始化App
    app := dotweb.New()

    //设置dotserver日志目录
    //如果不设置,默认不启用,且默认为当前目录
    app.SetEnabledLog(true)

    //开启development模式
    app.SetDevelopmentMode()

    //设置路由
    InitRoute(app.HttpServer)

    //自定义404输出
    app.SetNotFoundHandle(func(ctx dotweb.Context) {
        ctx.Response().Write(http.StatusNotFound, []byte("is't app's not found!"))
    })

    //启动 监控服务
    app.SetPProfConfig(true, 8081)

    //全局容器
    app.Items.Set("app", "dotweb")

    // 开始服务
    port := 8080
    fmt.Println("dotweb.StartServer => " + strconv.Itoa(port))
    err := app.StartServer(port)
    fmt.Println("dotweb.StartServer error => ", err)
}

更多代码可参考 https://github.com/devfeel/dotweb-example

欢迎各位加入我们的go语言QQ群:193409346