草庐IT

rest - gin-gonic 无法分配请求的地址

所以我目前正在使用gin-gonic包在go中构建一个restfulapi。我希望将代码部署到谷歌云平台计算引擎VM。当我在我的本地机器上运行代码时,它使用本地主机工作,但是当在指定外部IP的实际VM实例上运行它时,我收到TCP连接的绑定(bind)错误。任何帮助表示赞赏。server.gopackagemainimport("encoding/json""io/ioutil""net/http""os""github.com/gin-gonic/gin")typeheadlinesstruct{AuthorstringTitlestringDescriptionstringUrlst

Golang gin gonic web 框架代理路由到另一个后端

如何在GinGonic中将一些路由的代理Web请求反向到另一个后端网页golang框架有没有办法在Handle函数中直接转发如下图?路由器:=gin.New()router.Handle("POST","/api/v1/endpoint1",ForwardToAnotherBackend) 最佳答案 这是我用于将特定端点子集从gin框架反向代理到另一个后端的解决方案:router.POST("/api/v1/endpoint1",ReverseProxy())和:funcReverseProxy()gin.HandlerFunc{t

go - 如何定义一个中间有 id 的 go-gin 路由

我要定义一条路线/user/{userid}/status如何定义这种路由并在处理程序中拦截用户标识。像这样r.GET("/user/{userid}/status",userStatus)在这种情况下如何读取我的Go代码中的userid变量? 最佳答案 您可以使用userid:=c.Param("userid"),就像这个工作示例:packagemainimport("fmt""net/http""github.com/gin-gonic/gin")funcmain(){router:=gin.Default()router.GE

go - 如何使用 golang gin 为 restful API 创建身份验证模型?

我希望为我的restfulAPI创建一个身份验证模型。希望使用APItoken,我在Web服务中使用MVC,我创建了一个像这样的auth.goController。packagecontrollersimport("github.com/gin-gonic/gin""os"//"github.com/jinzhu/gorm")typeAdsControllerAuthstruct{}func(ac*AdsControllerAuth)TokenAuthMiddlewaregin.HandlerFunc{returnfunc(c*gin.Context){token:=c.Request

go - gin gonic 中间件,如何获取链中下一个处理程序的失败/成功状态

我正在编写一个中间件,使用gingonicgolang框架。我想知道在我的中间件中,如果对下一个处理程序的调用失败并根据此采取行动。funcfoo()gin.HandlerFunc{//dosomething..c.Next()//dosomethingbasedonresultofc.Next()}我该怎么做?next的文档没有提供太多信息https://godoc.org/github.com/gin-gonic/gin#Context.Next您能提供一些建议吗?我基本上想检查不存在的api端点,例如,有人输入一个URL,我们没有任何api端点,那么我可以在这里检测到它。

go - 我怎样才能在 gin url 中有一个带斜杠的参数

我想在gin的路由器中有一个带斜杠的参数。根据我收集到的信息,我可以通过向URL添加通配符来实现这一点。例如:/api/v0/files/*addr但是如果我想在URL的中间添加addr,比如/api/v0/*addr/files,这种方法就不起作用了,而且它返回此错误:catch-allroutesareonlyallowedattheendofthepath.我想知道是否有另一种方式获得它? 最佳答案 这似乎是Gin框架的限制,如@https://github.com/gin-gonic/gin/blob/master/tree

go - Gin输出到文件

我正在使用Gin制作RESTAPI服务器,Gin在控制台上显示其输出,如下所示:Ginconsoleexample我想将gin的输出输出到文件而不是控制台。我发现的是Gin/mode.go中的代码//DefaultWriteristhedefaultio.WriterusedtheGinfordebugoutputand//middlewareoutputlikeLogger()orRecovery().//NotethatbothLoggerandRecoveryprovidescustomwaystoconfiguretheir//outputio.Writer.//Tosuppo

Golang Gin "c.Param undefined (type *gin.Context has no field or method Param)"

我尝试使用作为Golang框架的Gin。https://github.com/gin-gonic/gin我从官方github上复制了示例代码。就像这样。packagemainimport("github.com/gin-gonic/gin""net/http")funcmain(){router:=gin.Default()router.GET("/user/:name",func(c*gin.Context){name:=c.Param("name")c.String(http.StatusOK,"Hello%s",name)})router.Run(":8080")}但是我得到了错

go - 将 interface{} 转换为 int go-gin 时出错

我从*gin.Context收到了一个interface{}类型的值:c.MustGet("account")当我尝试将其转换为int时使用:c.MustGet("account").(int)我得到一个错误:interfaceconversion:interfaceisfloat64,notint此接口(interface)的值为1。为什么我会收到此错误?我在sql查询中使用这个值。我无法将其转换为float64,因为sql语句会失败。我如何将其转换为int? 最佳答案 错误是不言自明的:interface{}值中存储的动态值是f

go - 如何调试 Gin Web Framework

我正在使用Gogin对于RESTAPI。在ruby​​onrails应用程序中,我可以使用调试器或pry进行调试。我如何在gin框架中做同样的事情?编辑:考虑以下请求。curl-XGETlocalhost:5005/test_controller/test_action--data'{"sw_lat":83.4444,"sw_lon":-171.232323,"ne_lat":82.2323232,"ne_lon":-161.3434343}'-H"Content-Type:application/json"RubyonRails:要检查服务器中的上述请求,我可以像下面这样放置debu