先来个最简单的:
main.go
package main
import (
"github.com/savsgio/atreugo"
)
func main() {
config := atreugo.Config{
Addr: "0.0.0.0:8000",
}
server := atreugo.New(config)
server.GET("/", func(ctx *atreugo.RequestCtx) error {
return ctx.TextResponse("Hello World")
})
if err := server.ListenAndServe(); err != nil {
panic(err)
}
}
这个是官方的例子
执行命令:
go run main.go
控制台输出:
2020/04/20 14:29:38 - atreugo - INFO - Listening on: http://0.0.0.0:8000/
表示执行成功, 浏览器输入: localhost:8000
得到结果
-------------------------
接下来我们传入get参数:
server.GET("/", func(ctx *atreugo.RequestCtx) error {
username := string(ctx.FormValue("username"))
if username != "" {
return ctx.TextResponse("Hello " + username + "!")
} else {
return ctx.TextResponse("Hello World!")
}
})
http://192.168.56.40:8000/?username=daxia
-----------------
接下来集成模板, 输出html
server.GET("/", func(ctx *atreugo.RequestCtx) error {
t, err := template.ParseFiles("./template/index.html")
if err != nil {
log.Fatal("Parse file template error:", err)
}
data := Data{Username: string(ctx.FormValue("username"))}
buf := new(bytes.Buffer)
err = t.Execute(buf, data)
if err != nil {
log.Fatal("Execute file template error:", err)
}
return ctx.HTTPResponse(buf.String())
})
./template/index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>hello测试</title>
</head>
<body>
你好, {{ .Username }}!
结束!