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))绑定
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!