1. 程式人生 > 其它 >Go語言框架Iris-01

Go語言框架Iris-01

安裝Iris

go install github.com/kataras/iris@master

可能會出現連線不上的問題,可以使用七牛雲的代理
具體可以看看這個https://goproxy.cn/

$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

Hello,Iris

func main() {
	app := iris.New()
	app.Run(iris.Addr(":8558"), iris.WithoutServerError(iris.ErrServerClosed))
}

Get,Post測試

  • 注意app.Run要寫道處理最後,不然會404頁面
type Test struct {
	Name string `json:"name"`
	Pwd  string `json:"pwd"`
}
type Test2 struct {
	Name string `form:"name"`
	Pwd  string `form:"pwd"`
}

func main() {
	app := iris.New()
	app.Get("/", func(context context.Context) {
		path := context.Path()
		app.Logger().Info(path)
	})
	app.Get("/getTest", func(context context.Context) {
		param1 := context.URLParam("param1")
		app.Logger().Info(param1)
		context.WriteString("ok")
	})
	app.Post("/userinfo", func(context context.Context) {
		var test Test
		if err := context.ReadJSON(&test); err != nil {
			panic(err.Error())
		}
		app.Logger().Info(test)
		context.WriteString("ok")
	})
        app.Post("/userinfo2", func(context context.Context) {
		var test Test2
		if err := context.ReadForm(&test); err != nil {
			panic(err.Error())
		}
		app.Logger().Info(test)
		context.WriteString("ok")
	})
	app.Run(iris.Addr(":8558"))
}

RESTful風格Url

func main() {
	app := iris.Default()
	//newsid,限制只能為uint64
	app.Get("/news/{date}/{newsid:uint64}", func(context context.Context) {
		date := context.Params().Get("date")
		newsid := context.Params().Get("newsid")
		app.Logger().Info(date, newsid)
		context.WriteString(date + "," + newsid)
	})
	app.Run(iris.Addr(":8558"))
}