一直想着,要系统性的写一些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 :=
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 :=
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

dotweb框架之旅 [一] - HelloWorld的更多相关文章

  1. dotweb框架之旅 [二] - 常用对象-App(dotweb)

    dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿. dotweb包含以下几个常用对象: App(dotweb) App容器,为Web ...

  2. dotweb框架之旅 [三] - 常用对象-HttpServer

    dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿. dotweb包含以下几个常用对象: App(dotweb) App容器,为Web ...

  3. dotweb框架之旅 [四] - 常用对象-HttpContext

    dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿. dotweb包含以下几个常用对象: App(dotweb) App容器,为Web ...

  4. go服务端----使用dotweb框架搭建简易服务

    使用dotweb框架搭建简易服务 go语言web框架挺多的,所谓琳琅满目,里面也有很多优秀的,比如echo.beego等,但体验下来,总是觉得哪里有点小疙瘩,后来才明白过来,echo太简单,很多日常使 ...

  5. 对 dotweb 框架进行统一的自定义错误处理

    助移动端的增长,如今 RESTful 风格的 API 已经十分流行, 用各种语言去写后端 API 都有很成熟方便的方案,用 golang 写后端 API 更是生产力的代表, 你可以用不输 python ...

  6. 学习CodeIgniter框架之旅(二)继承自定义类

    在很多情况下,框架类并不能满足项目的需求,这时候需要程序要自定义一些类,比如说基类等等,对比了TP框架,CI框架目前好像还没加入命名空间,这点TP做得比较好,不用特殊的处理就可以随便继承自定义的类,只 ...

  7. 学习CodeIgniter框架之旅(一)自定义模板目录

    在常用的框架本身都已经做好了分层和目录结构,但这在很多时候不满足项目的需求甚至在某些情况下变得不合理,因此很多时候需要自定义目录结构,在此就看看如果在CodeIgniter框架中自定义模板目录: 在C ...

  8. Win64 驱动内核编程-2.基本框架(安装.通讯.HelloWorld)

    驱动安装,通讯,Hello World 开发驱动的简单流程是这样,开发驱动安装程序,开发驱动程序,然后安装程序(或者其他程序)通过通讯给驱动传命令,驱动接到之后进行解析并且执行,然后把执行结果返回. ...

  9. 对Golang有兴趣的朋友,推荐一款go语言Web框架-dotweb

    Go语言,2009年推出,对我个人,2015年下半年,才下定决心正式开始引入使用Go,自此,让我获得了一种全新的开发体验. 在不断的项目过程中,一个开发人员总喜欢堆积一些代码段,由于Go的开源特性,逐 ...

随机推荐

  1. Day-11: IO编程

    由于CUP的运行速度远高于其他外设,IO操作有两种方式: 同步IO:CUP登着,程序暂停直到执行完后续代码 异步IO:CUP不等待,去做其他的事情,磁盘做完该做的事情后,告诉CUP,CUP再进行后续代 ...

  2. Linux运维:安装CentOS7.2-图解

    矮哥linux运维群: 93324526 笔者QQ:578843228 此篇博文针对最小化安装,和只有图解.有不懂地方,欢迎加群询问.

  3. yum仓库的定制

    矮哥linux运维群: 93324526 笔者QQ:578843228 一.简介 软件包的分类.源码包脚本安装二进制包(rpm包.系统默认包) 源码包: C语言的源代码优点:开源,如果有能力,可以修改 ...

  4. 1011. A+B和C (15)

    /*1011. A+B和C (15) 时间限制150 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者HOU, Qiming给定区间[-231, 231]内的3个整数A ...

  5. 如何在sublime+chrome中调试php代码?

    1.搭建php本地运行环境具体点击如何使用phpstudy本地搭建多站点(每个站点对应不同的端口) 2.下载php_xdebug.dll, [5.3版以上的php下载地址]http://pecl.ph ...

  6. 201521123038 《Java程序设计》 第六周学习总结

    201521123038 <Java程序设计> 第六周学习总结 1. 本周学习总结 2. 书面作业 1.clone方法 1.1 Object对象中的 clone 方法是被protected ...

  7. 201521123034《java程序设计》第2周学习总结

    1. 本章学习总结 - String对象创建之后不能再进行修改,修改字符串使用Stringbuilder: - 检测字符串内容是否相同不用==,用equals的方法检测: - 使用一维数组的两个步骤: ...

  8. 201521123036 《Java程序设计》第1周学习总结

    本周学习总结 本周的课是Java的入门.了解了Java的发展过程,运用平台,可跨平台的便利性.懂得jdk,jre,jvm的概念及区别.熟悉Java开发工具,掌握java程序的编译执行的详细过程. 书面 ...

  9. java第十三次作业

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相内关容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  10. 201521123050 《Java程序设计》第13周学习总结

    1. 本周学习总结 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 对比可以看出 ...