一直想着,要系统性的写一些dotweb使用的文章,之前拖延了不少时间,今天,下定决定,算是正式的开始,也请大家一起监督。
dotweb,是一款追求简约大方的go web框架,正如其github项目主页的自我介绍一样:“Simple and easy go web micro framework”,我相信能够坚持贯彻这一点,给大家提供一个用的舒服用的安心的框架:)
框架地址:https://github.com/devfeel/dotweb
目录:
2、dotweb框架之旅 [二] - 常用对象-App(dotweb)
3、dotweb框架之旅 [三] - 常用对象-HttpServer
这一章是开篇,先从著名的“HelloWorld”开始:
1、极客版
package main import ( "fmt" "github.com/devfeel/dotweb" ) func main() { //初始化DotServer app := dotweb.New() //注册hello路由 app.HttpServer.GET("/hello", func (ctx dotweb.Context) error { ctx.WriteString("hello world!") return nil }) //开始服务 port := 8080 err := app.StartServer(port) fmt.Println("dotweb.StartServer error => ", err) }
2、工程版
package main import ( "fmt" "github.com/devfeel/dotweb" ) func main() { //初始化DotServer app := dotweb.New() //开启debug模式 app.SetDevelopmentMode() //设置路由 InitRoute(app.HttpServer) //开始服务 port := 8080 err := app.StartServer(port) fmt.Println("dotweb.StartServer error => ", err) } func Hello(ctx dotweb.Context) error { ctx.WriteString("hello world!") return nil } func InitRoute(server *dotweb.HttpServer) { server.Router().GET("/hello", Hello) }
以上两段代码都是实现一样的功能,通过访问http://127.0.0.1:8080/hello 输出“hello world!”字符串。
极客版:一般仅为演示项目何其简介的时候才会这么写,做非常少量的路由时可以这么做,但一般工程项目不建议这么做,会加大维护的难度
工程版:正常项目,请务必剥离路由注册和HttpHandle的实现
项目版:目前为了尽量减少大家在使用dotweb时候的各种纠结,已经启动start项目,可以参考真实项目的一些目录指引 - https://github.com/devfeel/dotweb-start
启动日志:
访问http://127.0.0.1:8080/hello请求情况:
至此,成功达成目标。
如HelloWorld代码,整个Web启动过程分为几步:
1、初始化App容器
2、设置工作模式(development\production)
3、注册路由模快
4、设置端口
5、启动服务
以上五个步骤,其中第二步不是必须,默认为development模式。
希望本文能给大家带来一些帮助。
本文代码地址:https://github.com/devfeel/dotweb-example/blob/master/helloworld/main.go
欢迎各位加入我们的go语言QQ群:193409346
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· ASP.NET Core - 日志记录系统(二)
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 终于决定:把自己家的能源管理系统开源了!
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· 了解 ASP.NET Core 中的中间件
· 实现windows下简单的自动化窗口管理
· 【C语言学习】——命令行编译运行 C 语言程序的完整流程