问题标签 [go-gin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5942 浏览

go - 如何确保 redis 订阅者在 Go (Golang) 中接收消息?

我正在使用 gin 框架来构建 API 服务器。一般来说,我正在构建 2 个项目。项目'API'和项目'SOCKET'。Project'API'是 Android 中使用的主要 REST API,使用gin框架(golang)开发。而 Project'SOCKET'是客户端的套接字服务器,它将使用套接字连接,使用 node.js( Socket.IO)

这个过程是这样开始的:
用户 A:作为请求者;A连接到"API"
用户B:作为响应者;B 连接到"SOCKET"

User A从 android调用 API requestData,请求将由"API"的项目处理。Project"API"将记录请求,并在 redis 上发布为new_request使用 pubsub

这是例如代码:

}

在 Project"SOCKET"中,有一个订阅者将监听发生的每个发布,并将新消息发布到频道,responseclient 这是示例代码:

})

如果用户 B 连接到 Socket.IO ,这将顺利进行。但是如果用户 B离线,或者没有连接到 socket.io,这将等待很长时间,直到我们手动终止或直到用户 B 在线

我要的是:

  1. 我们可以callback在 redis pub/sub 上创建类似的东西吗?如果订阅者由于离线或其他原因不接受消息,我们将关闭连接。这可能吗 ?
  2. 在 Node.Js 中我知道我可以使用超时功能,如果在特定时间没有收到消息,它将关闭订阅或发出任何事件,如何在 golang 上执行此操作?我需要通知User AifUser B是活动的还是离线的,所以他可以等待另一个时间来创建请求。
  3. 如果什么都做不到,你对我有什么建议?

我希望我的问题,可以理解,并且可以很好地回答。
*一些代码可能,缺少变量。
** 我将这个库用于 golang redis:go-redis

0 投票
3 回答
52269 浏览

go - 如何从 go *gin.context 对象中获取所有查询参数

我正在查看https://godoc.org/github.com/gin-gonic/gin一种方法的文档,该方法返回传递的所有查询参数的列表。有一些方法可以返回查询参数的值。是否有任何方法可以返回传递的所有查询参数的列表?如果我们没有得到值也没关系。我正在使用以下代码获取查询参数的值。但是这段代码只能检查查询参数是否存在。

0 投票
0 回答
1260 浏览

session - 如何使用“contrib/sessions”包 gin gonic 为 cookie golang 设置域

请帮我!。我想为我的 cookie 设置域,在我的主要功能中,我设置:

在我的第一个处理函数中,我设置:

在另一个处理程序中,我通过以下方式获得“测试”会话:

但问题是结果的值为零,如果我删除

在主要功能中,它将起作用。所以任何人都可以为我解释。此外,如果我在我的第一个处理程序函数中获得会话“测试”,那就没问题了。

0 投票
2 回答
18160 浏览

go - 不支持扫描,将 driver.Value 类型 []uint8 存储为 *[]string 类型

我已经rest api使用golang,gingorp

POST发送请求时:

这将数据保存到mysql数据库,完美运行。

用于从数据库实现的GET请求中检索数据

GET查询不提供数据库中的任何数据,log.Println(err)日志说:

有任何想法吗?

0 投票
1 回答
4926 浏览

go - gorm db.find(&users) 到 golang 中带有 gin 的 json

这是我的 GET 方法,问题是我在 json 中得到的只是一个用户,而不是我的数据库中有 3 个用户。

0 投票
3 回答
12175 浏览

html - 如何在 Gin 上返回 html?

我正在尝试呈现已经在字符串上的 HTML,而不是在 Gin 框架上呈现模板。

c.HTML函数上的GET("/")函数需要渲染一个模板。

但是POST("/markdown")我已经在一个字符串上渲染了那个 HTML。

我怎样才能在杜松子酒上退货?

0 投票
1 回答
813 浏览

google-app-engine - 如何在 Google App Engine 中使用 Gin-gonic 中间件?

我在 Google App Engine 平台上为我的网站使用 Gin-Gonic。一切正常,但我开始需要使用一些中间件。

当我尝试使用:

返回的中间件MyMiddleware()似乎没有运行。

所以我的问题是:

  • 使用 GAE 时是否可以使用 gin-gonic 中间件?
  • 如果是这样,我该如何实现?

谢谢 !

这是我的消息来源:

main.go :

PS:routes.Router()只需设置一个路由器gin.New()并添加一些路由。

0 投票
4 回答
23896 浏览

unit-testing - 在 Golang 中制作模拟 gin.Context

我正在使用 Gin 框架编写一个 REST API。但是我在测试我的控制器和研究 TDD 和 Mock 时遇到了麻烦。我试图将 TDD 和 Mock 应用于我的代码,但我做不到。

我创建了一个非常精简的测试环境并尝试创建一个控制器测试。如何为 Gin.Context 创建 Mock?

这是我的示例代码:

我的测试示例:

0 投票
0 回答
1287 浏览

security - 如何在 Go 中检测 xss 攻击并中止错误请求

我在 Go 中使用dvwright/xss-mw中间件来检测 xss。此中间件会自动从用户提交的输入中删除 xss,并且请求会以有效响应继续。我想检测 xss,如果有任何 xss 脚本,然后通过错误而不是简单地删除 xss。

我的代码在这里。

请帮帮我。

0 投票
1 回答
1420 浏览

validation - 结合 GO GIN-GONIC GORM 和 VALIDATOR.V2

我对 Go 很陌生,我想通过设置 GIN-GONIC API 来启动。我找到了这个教程,我对这个骨架很满意。但现在我坚持使用我添加的验证过程:“gopkg.in/validator.v2”和

变成了

然后在CreateTodo我添加的函数中:

但随后一个 POST 调用发送:

“错误”:“类型:未知标签”

经过一些研究,我发现:

在字段标签中使用不存在的验证函数将始终返回 false 并带有错误validate.ErrUnknownTag

所以**validate:"size:2"**一定是错的......

我不知道如何设置验证以及如何在“catch”中显示正确的错误: