Iris框架的学习笔记(快速入门)

Iris类似于Flask框架,使用函数作为方法的入口
实例化一个app主类,通过app.方法请求类型(地址,触发函数) 来匹配请求
例如:

app.Get("/user/{name}", func(ctx iris.Context) {
        name := ctx.Params().Get("name")
        ctx.Writef("Hello %s", name)
    })

其中获取请求的参数,主要有路径参数和字符串参数,表单参数,Json参数,文件参数

路径参数

在请求中的触发函数中可以添加上下文入参,iris.Context
比如
app.Get("/user/{username}" , func(ctx iris.Context))
如此利用上下文ctx.Params().get("username")来获取路径参数
路径可以限制参数类型,比如app.Get("/user/{username:string}") ,则限定了username为string

字符串拼接参数

比如请求链接是:http://localhost:8080/welcome?username=Jelly233&password=233
使用ctx.URLParamDefault("username"),ctx.URLParamDefault("password")均可以获取参数

表单参数

表单参数比如是username,password
通常使用ctx.PostValue("username"),ctx.PostValue("password")获取

Json参数

使用ctx.ReadJson(接收对象),其中接收对象的属性需要标注映射字段(模型绑定)
比如,使用`json:key`来标注

type Person struct {
    Name string `json:name`
    Pwd  string `json:pwd`
}

文件参数

类似二进制文件的请求,通常使用ctx.FormFile(key)来读取,响应值分别是file,header,err
注意文件上传后使用defer file.Close()来关闭文件流

额外注意文件下载,需要使用ctx.SendFile(file文件流,文件名)来发送

对于响应结果的处理

返回HTML数据: ctx.HTML(标签内容)
返回JSON数据:  ctx.Json(iris.Map{k:v,k:v})
返回XML数据:   ctx.XML(map类型数据)
返回string数据: ctx.WriteString(str) 

路由功能

和flask一样,iris也需要路由功能来实现接口匹配
路由方式多种多样,如下有常用几种

1.handle方式匹配方法

app.Handle(GET,POST等请求的字符串,请求路径,触发函数)

2.常用的自定义表达式获取路由

app.Get(复杂路径表达式,触发函数)

3.路由组(组合多级请求路径)

userParty := app.Party(一级请求路径,触发函数)
触发函数中可以继续Party组合下一级请求参数
或者一级触发函数中写context.Next()
继续使用userParty.Get(二级请求路径,触发函数),处理业务逻辑
如此构成的接口就是包含多级请求路径的

MVC包的使用

iris的mvc包是使用语义匹配方法
与SpringMVC不同,它不使用注解,而是使用有实际操控意义的方法名来定义接口

func (uc *UserController) GetInfo() JsonResult {}
那么这条接口匹配的就是http://localhost:8082/info这个请求路径
语义有要求,如必须是开头大写的驼峰,开头必须是请求方法类型
通过mvc.Configure(app.Party(请求路径))来将Controller绑定到mvc上
或者使用mvc.New(app).Handle(new(xxxController))绑定

 

posted @ 2024-11-21 18:15  风乐  阅读(0)  评论(0编辑  收藏  举报