go区块链学习教程之iris框架mvc架构
在Iris框架中,封装了mvc包作为对mvc架构的⽀持,⽅便开发者遵循mvc的开发原则进⾏开发。
iris框架⽀持请求数据、模型、持久数据分层处理,并⽀持各层级模块代码绑定执⾏。
MVC即:model、view、controller三个部分,分别代表数据层、视图层、控制层。控制器层负责完成页⾯逻辑、实体层负责完成数据准备与数据操作、视图层负责展现UI效果。
在iris框架中,⽤⼀张图表⽰前端请求、服务端处理请求、服务端返回数据到前端的请求过程图,描述如下:
mvc.Application
iris框架中的mvc包中提供了Application结构体定义。开发者可以通过注册⾃定义的controller来使⽤对应提供的API,其中包含路由组router.Party,以此⽤来注册layout、middleware以及相应的handlers等。
iris.mvc特性
iris框架封装的mvc包,⽀持所有的http⽅法。⽐如,如果想要提供GET,那么控制器应该有⼀个名为Get()的函数,开发者可以定义多个⽅法函数在同⼀个Controller中提供。这⾥的Get、Post⽅法是指的直接和⼋种请求类型同名的⽅法,mvc模块会⾃动执⾏到Get()、Post()等⼋种对应的⽅法。如下所⽰:
//⾃定义的控制器
type CustomController struct{}
//注册⾃定义控制器处理请求
mvc.New(app).Handle(new(CustomController))
//⾃动处理基础的Http请求
/
/Url: localhost:8000
//Type:GET请求
func (cc *CustomController) Get() mvc.Result{
//todo
return mvc.Response{
ContentType:"text/html",
}
}
/**
* Url:localhost:8000
* Type:POST
**/
func (cc *CustomController) Post() mvc.Result{
//todo
return mvc.Response{}
}
根据请求类型和请求URL⾃动匹配处理⽅法
在iris框架中的mvc设计包中,设定了⾃定义的控制器以后,⽀持根据请求类型和对应的URL⾃动匹配对应的处理⽅法。具体案例如下:
/**
* url:localhost:8000/info
* type:GET请求
**/
func (cc *CustomController) GetInfo() mvc.Result{
//todo
}
/**
* url:localhost:8000/login
* type:POST
**/
func (cc *CustomController) PostLogin() mvc.Result{
//todo
}
如上案例,当我们发起请求时,iris框架就能够⾃动匹配对应的控制器的处理⽅法。除了上述get和post两个⽅法之外,http请求的⼋种类型中的其他请求类型,也⽀持⾃动匹配。
BeforeActivation⽅法
在通过Configure和Handle进⾏了⾃定义Controller绑定以后,就可以使⽤⾃⼰⾃定义的Controller来进⾏⾃定义处理处理请求⽅法。开发者可以在BeforeActivation⽅法中来处理请求定义。如下所⽰,我们给出案例说明:
func (m *CustomController) BeforeActivation(a mvc.BeforeActivation){
a.Handle("GET","/users/info","QueryInfo")
}
//对应处理请求的⽅法
func (m *CustomController) QueryInfo() mvc.Result{
//todo
}
使⽤mvc.Configure配置路由组和控制器
除了使⽤w(app)来构建mvc.Application结构体对象和Handle⽅法来配置处理请求的控制器外,iris框架还⽀持使⽤mvc.Configure来配置路由组和控制器的设置。具体使⽤⽅法如下:
mvc.Configure(app.Party("/user"), func(mvc *mvc.Application) {
mvc.Handle(new(UserController))
})
mvc的controller本节课中我们学习了mvc包中控制器极其处理⽅法的基本⽤法,在实战项⽬中,我们会在本节课学习内容的基础上,继续深⼊学习更详细的操作。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。