61396-Go语言程序设计项目化教程(微课版)7.2 路由.pptx
《61396-Go语言程序设计项目化教程(微课版)7.2 路由.pptx》由会员分享,可在线阅读,更多相关《61396-Go语言程序设计项目化教程(微课版)7.2 路由.pptx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、路由路由路由的分组路由的多种数据格式响应路由的拆分与注册01.03.02.目录URL重定向04.01路由的分组路由分组定义路由分组使用1路由的分组路由的分组/login/user1/login/admin/logout/user1/logout/admin将具有一类功能的路由放到一起通常也会将不同版本的路由分成一个组路由分组的定义将具有一类功能的路由放到一起通常也会将不同版本的路由分成一个组常见应用:首页路由组、用户路由组、后台管理路由组等路由分组的使用/login/username/logout/username1路由的分组路由的分组homePageRouters:=r.Group(/)ho
2、mePageRouters.GET(/,func(c*gin.Context)c.string(200,首页)homePageRouters.GET(/login,func(c*gin.Context)c.string(200,登录)homePageRouters.GET(/logout,func(c*gin.Context)c.string(200,登出)homePageRouters.GET(/Commodityclassification,func(c*gin.Context)c.string(200,商品分类)设置首页路由组为/组内包含首页、登录、登出、商品分类02路由的拆分与注册路由
3、的拆分路由的注册2路由的拆分与注册路由的拆分与注册原目录结构路由拆分后目录结构gin_demo go.mod go.sum main.go routers.gogin_demo go.mod go.sum main.go routers routers.go把路由拆分成单独的文件或包即:拆分成多个文件路由的拆分将main.go文件中路由部分的代码拆分出来,形成单独的文件或包。从而避免当项目规模增大后,main.go文件代码过于庞大路由的拆分的使用路由的注册不管拆分的路由还是没拆分的路由,路由的注册方式都是一样的:需要在文件中注册路由,供main.go去调用。2路由的拆分与注册路由的拆分与注册r
4、outes/A.gofunc A(r*gin.Engine)r.GET(/he1,he1Handler)r.GET(/load1,load1Handler)/.routes/B.gofunc B(r*gin.Engine)r.GET(/he2,he2Handler)r.GET(/load2,load2Handler)/.main.go文件func main()r:=gin.Default()routers.A(r)routers.B(r)r.Run();路由拆分成多个文件2路由的拆分与注册路由的拆分与注册app/blog/router.gofunc Routers(e*gin.Engine)e
5、.GET(/post,postHandler)e.GET(/comment,commentHandler)app/shop/router.gofunc Routers(e*gin.Engine)e.GET(/goods,goodsHandler)e.GET(/checkout,checkoutHandler)gin_demo app blog handler.go router.go shop handler.go router.go go.mod go.sum main.go routers routers.go 路由拆分到不同的APP2路由的拆分与注册路由的拆分与注册main.gofunc
6、 main()/加载多个APP的路由配置 routers.Include(shop.Routers,blog.Routers)/初始化路由 r:=routers.Init()if err:=r.Run();err!=nil /.routes/routes.gotype Option func(*gin.Engine)var options=Option/注册app的路由配置func Include(opts.Option)options=append(options,opts.)/初始化func Init()*gin.Engine r:=gin.New()for _,opt:=range op
7、tions opt(r)return r 路由拆分到不同的APP03路由的多种数据格式响应JSON格式XML格式HTML模板渲染3路由的多种数据格式响应路由的多种数据格式响应/JSON serializes the given struct as JSON into the response body./It also sets the Content-Type as application/json.func(c*Context)JSON(code int,obj any)c.Render(code,render.JSONData:obj)JSON渲染gin.H类型/H is a short
8、cut for mapstringinterfacetype H mapstringanyRestful风格的API所输出的大多都是JSON格式的内容相比较旧的XML格式,JSON格式轻便、简洁、易于传输使用了gin.H类型来构建了一个键值对对象3路由的多种数据格式响应路由的多种数据格式响应package mainimport( main()/创建基础路由,赋值变量rr:=gin.Default()/使用GET请求r.GET(/JSON,func(c*gin.Context)c.JSON(200,gin.Hname:Gin,city:深圳)/调用Run函数,监听8080端口r.Run(:808
9、0)JSON 全拼是JavaScript Object NotationJSON 使用 Javascript语法来描述数据对象,但是 JSON 独立于语言和平台JSON 类似 XML,但比 XML 更小、更快,更易解析、易于人阅读和编写3路由的多种数据格式响应路由的多种数据格式响应func main()/创建基础路由,赋值变量r r:=gin.Default()/使用GET请求 r.GET(/JSON,func(c*gin.Context)c.JSON(200,PersonName:Gin,City:深圳,Age:18)c.JSON(200,studentstuno:123,stuname:G
10、o)/调用Run函数,监听8080端口 r.Run(:8080)package mainimport( Person struct Name stringCity stringAge int8type student struct stuno stringstuname stringstruct转JSON 需要注意:结构体类型名、字段名首字母要大写3路由的多种数据格式响应路由的多种数据格式响应package mainimport Person struct Name string json:nameCity string json:cityAge int8 json:agefunc main(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 61396-Go语言程序设计项目化教程微课版7.2 路由 61396 Go 语言程序设计 项目 教程 微课版 7.2
限制150内