沉默之都

沉默,造就了我们的冷酷-程序的威力
随笔 - 44, 文章 - 1, 评论 - 40, 阅读 - 48274
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 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

dotweb框架之旅 [一] - HelloWorld

Posted on   基点项目师  阅读(1294)  评论(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

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示