iris(1)
iris(2)
iris(3)
当我们的一个路径是
xxx/user/info
,xxx/user/login
,xxx/user/register
的时候,我们发现前面都有一个user
,我们如果用/{data:string}
这样的话这样导致我们的路径是灵活的,所以我们得用其他方法
这里我们的路径是以
anime
为例
animeParty := app.Party("/animes",func(ctx iris.Context){
//处理下一级请求
ctx.Next()
})
animeParty.Get("/djsy",func(ctx iris.Context){
djsyMsg := Anime{
Fid:0,
FName: "刀剑神域",
ZFNumber:0,
}
ctx.JSON(djsyMsg)
})
animeParty.Get("/yls1",func(ctx iris.Context){
djsyMsg := Anime{
Fid:1,
FName: "野良神第一季",
ZFNumber:0,
}
ctx.JSON(djsyMsg)
})
/**
用户模块users
xxx/users/register 注册
xxx/users/login 登陆
xxx/users/info 获取用户信息
*/
/**
路由组请求
/users:自定义
*/
userParty := app.Party("/users",func(ctx iris.Context){
ctx.Next()
})
userParty.Get("/register",func(ctx iris.Context){
userMsg := []User{
{Uid: 0,Name: "admin"},
{Uid: 1,Name: "zhangsan"},
}
ctx.JSON(userMsg)
})
userParty.Get("/login",func(ctx iris.Context){
userMsg := []User{
{Uid: 0,Name: "admin"},
{Uid: 1,Name: "zhangsan"},
}
ctx.JSON(userMsg)
})
这个Party()
会返回一个Party
结构体对象,其中func()
是匿名函数,我们可以定义一个方法来引用方法
userParty := app.Party("/users",userPartyFunc)
func userPartyFunc(ctx iris.Context){
ctx.Next()
}
当你执行完请求执行了
Next()
方法,就会去执行Done()
方法,表示你的请求完成了
userParty := app.Party("/admin",func(ctx iris.Context){})
userParty.Done(func(ctx iris.Context){
app.Application.Logger().Info("+ctx.Path())
})
userParty.Get('/info',func(ctx iris.Context){})
app.Configure()
来进行配置
//一、通过程序代码对应用进行全局配置
app.Configure(iris.WithConfiguration(iris.Configuration{
//如果设置为true,当人为中断程序时,则不会正常将服务关闭,如果设置为true,需要自己自定义处理
DisableInterruptHandler: false,
//该配置项表示更正并将请求的路径重定向到已注册的路径
//比如:如果请求/home/但找不到比Route的处理程序,然后路由器检查/home处理程序是否存在,如果是,permant)将客户端重定向到正确的路径/home。
//默认为false
DisablePathCorrection: false,
EnablePathEscape: false,
FireMethodNotAllowed: false,
DisableBodyConsumptionOnUnmarshal: false,
DisableAutoFireStatusCode: false,
TimeFormat: "Mon.02 Jan 2006 15:04:05 GMT",
Charset: "utf-8",
}))
//二、通过读取tml配置文件读歌服务配置
//注意:要在rUn方法运行之前执行
app.Configure(iris.WithConfiguration(iris.T0ML(filename:"tml-path"))
//三、通过读取yam1配置文件读取服务配置
//同样要在run方法运行之前执行
app.Configure(iris.WithConfiguration(iris.YAML(filename:"yml-path"))
//四、通过j50n配置文件进行应用配置
file,-=os,0pen(name:"json-path")
defer file.Close()