沉默之都

沉默,造就了我们的冷酷-程序的威力
随笔 - 44, 文章 - 1, 评论 - 40, 阅读 - 48213
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

dotweb框架之旅 [一] - HelloWorld

Posted on   基点项目师  阅读(1292)  评论(3编辑  收藏  举报

一直想着,要系统性的写一些dotweb使用的文章,之前拖延了不少时间,今天,下定决定,算是正式的开始,也请大家一起监督。

dotweb,是一款追求简约大方的go web框架,正如其github项目主页的自我介绍一样:Simple and easy go web micro framework”,我相信能够坚持贯彻这一点,给大家提供一个用的舒服用的安心的框架:)

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

目录:

1、dotweb框架之旅 [一] - HelloWorld

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

编辑推荐:
· ASP.NET Core - 日志记录系统(二)
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
阅读排行:
· 终于决定:把自己家的能源管理系统开源了!
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· 了解 ASP.NET Core 中的中间件
· 实现windows下简单的自动化窗口管理
· 【C语言学习】——命令行编译运行 C 语言程序的完整流程
点击右上角即可分享
微信分享提示