路由路由是URI到函数的映射。一个URI含:http://localhost:8080/user/find?id11协议比如httphttps等ip端口或者域名比如127.0.0.1:8080或者www.test.compath比如 /pathquery比如 ?query同时访问的时候还需要指明HTTP METHOD比如GETGET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据.POSTPOST方法用于将实体提交到指定的资源通常会导致在服务器上的状态变化HEADHEAD方法请求一个与GET请求的响应相同的响应但没有响应体.PUTPUT方法用请求有效载荷替换目标资源的所有当前表示DELETEDELETE方法删除指定的资源CONNECTCONNECT方法建立一个到由目标资源标识的服务器的隧道。OPTIONSOPTIONS方法用于描述目标资源的通信选项。TRACETRACE方法沿着到目标资源的路径执行一个消息环回测试。PATCHPATCH方法用于对资源应用部分修改。使用的时候应该尽量遵循其语义1. RESTful API规范RESTful API 的规范建议我们使用特定的HTTP方法来对服务器上的资源进行操作。比如GET表示读取服务器上的资源POST表示在服务器上创建资源PUT,表示更新或者替换服务器上的资源DELETE表示删除服务器上的资源PATCH表示更新/修改资源的一部分2. 请求方法比如r.GET(/get,func(ctx*gin.Context){ctx.JSON(200,get)})r.POST(/post,func(ctx*gin.Context){ctx.JSON(200,post)})r.DELETE(/delete,func(ctx*gin.Context){ctx.JSON(200,delete)})r.PUT(/put,func(ctx*gin.Context){ctx.JSON(200,put)})如果想要支持所有r.Any(/any,func(ctx*gin.Context){ctx.JSON(200,any)})如果想要支持其中的几种r.GET(/hello,func(ctx*gin.Context){//数组 map list 结构体ctx.JSON(200,gin.H{name:hello world,})})r.POST(/hello,func(ctx*gin.Context){//数组 map list 结构体ctx.JSON(200,gin.H{name:hello world,})})3. URIURI书写的时候我们不需要关心scheme和authority这两部分我们主要通过path和query两部分的书写来进行资源的定位。静态url比如/hello/user/findr.POST(/user/find,func(ctx*gin.Context){})路径参数比如/user/find/:idr.POST(/user/find/:id,func(ctx*gin.Context){param:ctx.Param(id)ctx.JSON(200,param)})模糊匹配比如/user/*pathr.POST(/user/*path,func(ctx*gin.Context){param:ctx.Param(path)ctx.JSON(200,param)})4. 处理函数定义typeHandlerFuncfunc(*Context)通过上下文的参数获取http的请求参数响应http请求等。5. 分组路由在进行开发的时候我们往往要进行模块的划分比如用户模块以user开发商品模块以goods开头。或者进行多版本开发不同版本之间路径是一致的这种时候就可以用到分组路由了。比如ug:r.Group(/user){ug.GET(find,func(ctx*gin.Context){ctx.JSON(200,user find)})ug.POST(save,func(ctx*gin.Context){ctx.JSON(200,user save)})}gg:r.Group(/goods){gg.GET(find,func(ctx*gin.Context){ctx.JSON(200,goods find)})gg.POST(save,func(ctx*gin.Context){ctx.JSON(200,goods save)})}
全网最强 Gin 教程 | Gin 路由
路由路由是URI到函数的映射。一个URI含:http://localhost:8080/user/find?id11协议比如httphttps等ip端口或者域名比如127.0.0.1:8080或者www.test.compath比如 /pathquery比如 ?query同时访问的时候还需要指明HTTP METHOD比如GETGET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据.POSTPOST方法用于将实体提交到指定的资源通常会导致在服务器上的状态变化HEADHEAD方法请求一个与GET请求的响应相同的响应但没有响应体.PUTPUT方法用请求有效载荷替换目标资源的所有当前表示DELETEDELETE方法删除指定的资源CONNECTCONNECT方法建立一个到由目标资源标识的服务器的隧道。OPTIONSOPTIONS方法用于描述目标资源的通信选项。TRACETRACE方法沿着到目标资源的路径执行一个消息环回测试。PATCHPATCH方法用于对资源应用部分修改。使用的时候应该尽量遵循其语义1. RESTful API规范RESTful API 的规范建议我们使用特定的HTTP方法来对服务器上的资源进行操作。比如GET表示读取服务器上的资源POST表示在服务器上创建资源PUT,表示更新或者替换服务器上的资源DELETE表示删除服务器上的资源PATCH表示更新/修改资源的一部分2. 请求方法比如r.GET(/get,func(ctx*gin.Context){ctx.JSON(200,get)})r.POST(/post,func(ctx*gin.Context){ctx.JSON(200,post)})r.DELETE(/delete,func(ctx*gin.Context){ctx.JSON(200,delete)})r.PUT(/put,func(ctx*gin.Context){ctx.JSON(200,put)})如果想要支持所有r.Any(/any,func(ctx*gin.Context){ctx.JSON(200,any)})如果想要支持其中的几种r.GET(/hello,func(ctx*gin.Context){//数组 map list 结构体ctx.JSON(200,gin.H{name:hello world,})})r.POST(/hello,func(ctx*gin.Context){//数组 map list 结构体ctx.JSON(200,gin.H{name:hello world,})})3. URIURI书写的时候我们不需要关心scheme和authority这两部分我们主要通过path和query两部分的书写来进行资源的定位。静态url比如/hello/user/findr.POST(/user/find,func(ctx*gin.Context){})路径参数比如/user/find/:idr.POST(/user/find/:id,func(ctx*gin.Context){param:ctx.Param(id)ctx.JSON(200,param)})模糊匹配比如/user/*pathr.POST(/user/*path,func(ctx*gin.Context){param:ctx.Param(path)ctx.JSON(200,param)})4. 处理函数定义typeHandlerFuncfunc(*Context)通过上下文的参数获取http的请求参数响应http请求等。5. 分组路由在进行开发的时候我们往往要进行模块的划分比如用户模块以user开发商品模块以goods开头。或者进行多版本开发不同版本之间路径是一致的这种时候就可以用到分组路由了。比如ug:r.Group(/user){ug.GET(find,func(ctx*gin.Context){ctx.JSON(200,user find)})ug.POST(save,func(ctx*gin.Context){ctx.JSON(200,user save)})}gg:r.Group(/goods){gg.GET(find,func(ctx*gin.Context){ctx.JSON(200,goods find)})gg.POST(save,func(ctx*gin.Context){ctx.JSON(200,goods save)})}