gin

go中gin框架+realize实现边写代码边编译,热更新

不问归期 提交于 2020-07-28 17:48:31
最近看到了热加载,相关的,就搜索了goland实现热加载 发现了一个插件realize https://github.com/oxequa/realize 然后,为了自己撸代码更方便,配合gin写个教程 1.准备 go get github.com/oxequa/realize go get github.com/gin-gonic/gin 2.然后开始 package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin.Default() r.GET("/sayHello/:name", SayHello) r.GET("/test/:id/:name", getUser) r.Run(":9090") } //http://localhost:9090/test/1/dong func getUser(c *gin.Context) { id := c.Param("id") name := c.Param("name") json := gin.H{ "data": id, "name": name, } c.JSON(http.StatusOK, json) } //http://localhost:9090/sayHello/dong func SayHello(c

Gin框架系列02:路由与参数

一个人想着一个人 提交于 2020-07-28 08:49:49
回顾 # 上一节我们用Gin框架快速搭建了一个GET请求的接口,今天来学习路由和参数的获取。 请求动词 # 熟悉 RESTful 的同学应该知道, RESTful 是网络应用程序的一种设计风格和开发方式,每一个URI代表一种资源,客户端通过 POST 、 DELETE 、 PUT 、 GET 四种请求方式来对资源做增删改查的操作。 同样的,Gin框架给我们提供的除这4种动词外,还有 PATCH 、 OPTION 、 HEAD 等,详细内容可以查看 rentergroup.go 文件的 IRoutes 接口。 Copy type IRoutes interface { Use(...HandlerFunc) IRoutes Handle( string, string, ...HandlerFunc) IRoutes Any( string, ...HandlerFunc) IRoutes GET( string, ...HandlerFunc) IRoutes POST( string, ...HandlerFunc) IRoutes DELETE( string, ...HandlerFunc) IRoutes PATCH( string, ...HandlerFunc) IRoutes PUT( string, ...HandlerFunc) IRoutes OPTIONS(

Gin_路由

点点圈 提交于 2020-07-28 07:28:27
1. 基本路由 gin 框架中采用的路由库是基于httprouter做的 1、router:=gin.Default():这是默认的服务器。使用gin的Default方法创建一个路由Handler; 2、然后通过Http方法绑定路由规则和路由函数。不同于net/http库的路由函数,gin进行了封装,把request和response都封装到了gin.Context的上下文环境中。 3、最后启动路由的Run方法监听端口。还可以用http.ListenAndServe(":8080", router),或者自定义Http服务器配置。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package main import ( "net/http" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() //不带默然中间件的路由 //r := gin.New() //Handle r.Handle( "GET" , "/" , func (context *gin.Context) { }) //直接使用httpMethod r.GET( "/" , func (c *gin.Context) { c.String

从别人的代码中学习golang系列--02

时光怂恿深爱的人放手 提交于 2020-07-28 01:55:04
这篇博客还是整理从https://github.com/LyricTian/gin-admin 这个项目中学习的golang相关知识 作者在项目中使用了https://github.com/google/wire 做依赖注入,这个库我之前没有使用过,看了作者代码中的使用,至少刚开始是看着优点懵,不知道是做什么,所以这篇博客主要就是整理这个包的使用 依赖注入是什么? 如果你搜索 依赖注入 ,百度百科里可能先看到的是 控制反转 ,下面是百度百科的解释 控制反转 (Inversion of Control,缩写为 IoC ),是 面向对象编程 中的一种设计原则,可以用来减低计算机代码之间的 耦合度 。其中最常见的方式叫做 依赖注入 (Dependency Injection,简称 DI ),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。 这样的解释可能还是不好理解,所以我们通过一个简单的代码来理解应该就清楚很多。 我们用程序实现:小明对世界说:"hello golang" 这里将小明抽象为People 说的内容抽象为: Message 小明说 hello golang 抽象为:Event, 代码如下: package main import

Golang(go语言)的框架

て烟熏妆下的殇ゞ 提交于 2020-07-27 16:31:48
Golang(go语言)的框架 2020–07–25 框架名称 stars 描述 基于net/http的框架或基于fasthttp库 统计时间 gin 34686 Gin是一个用Go(Golang)编写的HTTP web框架。它提供了一个类似马提尼的API,性能更好,速度快了40倍 net/http 2020-01-13 beego 23023 beego可以用来快速开发API、Web、后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado、sinatra、flask这三个框架,但是结合了Go本身的一些特性(interface、struct继承等)而设计的一个框架 net/http 2020-01-13 iris 17287 最快的社区驱动的Go网络框架。Webassembly、带有公共域的自动HTTPS、MVC、会话、缓存、版本控制API、问题API、Websocket、依赖注入等等。与标准库和第三方中间件包完全兼容 2020-01-13 echo 16206 高性能、极简的Go-web框架 2020-01-13 kit 16018 微服务的标准库。 2020-01-13 revel 11518 一个用于Go语言的高生产率、全栈web框架 2020-01-13 go frame 1988 GoFrame是golang的一个模块化、功能齐全

[Go] GO语言实战-gin框架项目实现中英文切换

谁说胖子不能爱 提交于 2020-07-26 13:10:24
如果项目中需要有多语言的展示,类似网站中英文切换,可以使用下面这个方法来实现 主要思路就是,页面html内容展示的时候,不能固定写死在页面上,需要从控制器部分分配过来变量,展示输出这个变量 这个变量的内容来自一个结构体的成员,该结构体在创建实例的时候,可以根据传递参数的不同,实例的成员内容不同 实际展示的地址是: http://gofly.sopans.com/ 直达地址 控制器部分就是分配变量,在这里是通过get传递lang这个参数cn就是中文,en就是英文 engine.GET("/index", tmpl.PageIndex) // 首页 func PageIndex(c * gin.Context) { lang : = c.Query( " lang " ) if lang == "" ||lang!= " cn " { lang = " en " } language: = config.CreateLanguage(lang) c.HTML(http.StatusOK, " index.html " , gin.H{ " Copyright " :language.WebCopyRight, " WebDesc " :language.MainIntro, " SubIntro " :language.IndexSubIntro, " Document "

golangWeb框架---github.com/gin-gonic/gin学习一(路由、多级路由、参数传递几种形式)

左心房为你撑大大i 提交于 2020-07-25 04:58:17
文章目录 Gin介绍 安装 快速开始 路径参数 构造参数 post传参 get+post混合形式 构造Map格式 分组路由 Gin介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了1.0版本。具有快速灵活,容错方便等特点。其实对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错。框架更像是一些常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。 安装 下载安装 $ go get -u github.com/gin-gonic/gin 1 项目中导入 import "github.com/gin-gonic/gin" 1 (可选)导入NET/HTTP。例如,如果使用诸如HTTP.StasuCK之类的常数,则需要这样做。 import "net/http" 1 快速开始 让我们先通过一个简单的例子,迅速的了解以下 以下demo代码摘自Gin的github实例 package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200,

golangWeb框架---github.com/gin-gonic/gin学习三(路由多视图函数、中间件、log日志)

◇◆丶佛笑我妖孽 提交于 2020-07-24 20:58:29
文章目录 gin.New 路由包含多个HandlerFunc函数 使用中间件 如何写log日志 gin.New 我们之前的例子都是利用了gin.Default(),那么gin.New()跟它有什么区别?来简单看下源码 gin.Default()源码如下 func Default() *Engine { debugPrintWARNINGDefault() engine := New() engine.Use(Logger(), Recovery()) return engine } 1 2 3 4 5 6 gin.New()源码如下 func New() *Engine { debugPrintWARNINGNew() engine := &Engine{ RouterGroup: RouterGroup{ Handlers: nil, basePath: "/", root: true, }, FuncMap: template.FuncMap{}, RedirectTrailingSlash: true, RedirectFixedPath: false, HandleMethodNotAllowed: false, ForwardedByClientIP: true, AppEngine: defaultAppEngine, UseRawPath: false,

golangWeb框架---github.com/gin-gonic/gin学习八(监听多端口、多类型的struct模型绑定)

隐身守侯 提交于 2020-07-24 10:57:49
文章目录 监听多端口 自定义的struct绑定form-data 监听多端口 如何利用gin实现监听多端口 package main import ( "log" "net/http" "time" "github.com/gin-gonic/gin" "golang.org/x/sync/errgroup" ) var ( g errgroup.Group ) func router01() http.Handler { e := gin.New() e.Use(gin.Recovery()) e.GET("/", func(c *gin.Context) { c.JSON( http.StatusOK, gin.H{ "code": http.StatusOK, "error": "Welcome server 01", }, ) }) return e } func router02() http.Handler { e := gin.New() e.Use(gin.Recovery()) e.GET("/", func(c *gin.Context) { c.JSON( http.StatusOK, gin.H{ "code": http.StatusOK, "error": "Welcome server 02", }, ) }) return e } func main