• go iris请求处理和动态路由


    package main
    
    import (
    	"fmt"
    	"github.com/kataras/iris/v12"
    	"github.com/kataras/iris/v12/context"
    )
    
    type UserInfo struct {
    	Name string `form:"name"`
    	Age  int    `form:"age"`
    }
    
    func main() {
    	app := iris.New()
    	// get请求
    	app.Get("/", func(context context.Context) {
    		// 从get请求中获取数据
    		params := context.URLParams()
    		fmt.Println(params)
    		// 返回字符串
    		//i, err := context.Write([]byte("这是返回的第一个字符串"))
    		//i, err := context.WriteString(("这是返回的第一个字符串"))
    		// 返回HTML
    		//i, err := context.HTML(`<span style="color:red">这是返回的第一个html</span>`)
    		// 返回json
    		i, err := context.JSON(map[string]interface{}{"msg": "这是返回的第一个json", "status": 200})
    		fmt.Println(i)
    		if err != nil {
    			app.Logger().Error("服务器错误" + fmt.Sprintf("%v", err))
    		}
    	})
    	// post 请求
    	app.Post("/post", func(context context.Context) {
    		//通过form提交数据
    		var userinfo UserInfo
    		//err := context.ReadForm(&userinfo)
    		err := context.ReadJSON(&userinfo)
    		fmt.Println(userinfo)
    		fmt.Println(err)
    		context.JSON(map[string]interface{}{"name": userinfo.Name, "age": userinfo.Age})
    	})
    	// uri参数
    	app.Get("/api/{date}/{city}", func(context context.Context) {
    		// /api/{name}/{age:uint64} 在动态路由参数后面可以添加这个参数的类型
    		par := context.Params()
    		d := par.Get("date")
    		c := par.Get("city")
    		context.WriteString(fmt.Sprintf("查询%v的%v的天气", d, c))
    	})
    
    	err := app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
    	if err != nil {
    		fmt.Println("服务器错误...", err)
    	}
    }
    
    
  • 相关阅读:
    Linux系统中/和是什么意思,和window系统有什么区别?
    给自己的U盘设定图标
    我的第一篇文章
    大端小端
    好玩的地图
    英语流利说 第28天
    英语流利说 第27天
    英语流利说 第26天
    英语流利说 第25天
    英语流利说 第24天
  • 原文地址:https://www.cnblogs.com/wtil/p/15164366.html
Copyright © 2020-2023  润新知