问题标签 [gorilla]

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 回答
374 浏览

go - 使用接口返回类型定义接口方法

TLDR如果您尝试运行它,这是一个演示问题的游乐场:https: //play.golang.org/p/myQtUVg1iq

我正在制作一个 REST API,并且有多种类型的资源可以通过 GET 请求检索

我有一个模型包,它抽象了不同资源的实现方式:

路由文件设置所有路由和处理程序:

我试图通过创建一个接口来使其更通用,然后只需要一个 GetHandler。像这样的东西:

这真的很接近工作,唯一的问题是模型的返回类型是特定的对象类型,但接口只使用接口返回类型。有没有办法在不让模型返回的情况下解决这个问题[]interface{}

https://play.golang.org/p/myQtUVg1iq

0 投票
2 回答
3650 浏览

rest - REST 上不受支持的 HTTP 方法返回什么响应代码?

我正在使用 Gorilla Mux 来处理我的 REST API 的 HTTP 路由。我正在为我的 API 使用以下绑定:

然后我做一个这样的CURL:

正如预期的那样,该方法APIUsers没有被调用。我确实得到了200 OK回报:

我是否应该对 Gorilla 进行不同的操作,例如将所有失败的功能绑定到指定的功能?另外我想知道在不受支持的函数上返回的典型 HTTP 代码是什么。我假设该400范围内的代码,但我不确定使用哪个。我不希望这样200,因为请求不是“ OK”。

关于这个主题的任何想法和提示?

0 投票
1 回答
564 浏览

sql - Can I use gorilla schema with an sql.NullString?

I am using gorilla schema to populate a struct based on a user's form submission. My struct contains sql.NullString and I am currently getting the following error:

schema: converter not found for sql.NullString

How can I use sql.NullString in a struct that I want to populate with gorilla schema?

0 投票
3 回答
5158 浏览

http - 从中间件获取 gorilla/mux 路由器当前路由名称

问题: 无法从中间件访问 mux.CurrentRoute(r).GetName()。(虽然我已经能够从我的中间件访问它,但我不得不改变我的中间件的工作方式,因为它以前无法访问请求)。所以我搞砸了一些东西,我不确定如何回到可以访问路由名称的工作状态。

任何帮助将非常感激!

错误:

代码:

更新(2015-01-04 @ 4:49PM EST):所以在删除中间件(或至少注释掉试图读取 mux.CurrentRoute 的部分)之后,我能够从目标 handlerfunc 检索路由名称(例如: usersCreateHandlerFunc 或brandCreateHandlerFunc)。这并不能解决我的问题(我仍然想在中间件中执行身份验证/授权,而不是每个 handlerfunc),我有一种预感,它让我知道 *mux.Router 在我的中间件中不可用,直到最终之后.ServeHTTP 调用。(或类似的规定...)

更新(2015-01-04 @ 5:41PM EST):尝试了使用 Negroni 作为中间件组件的不同(尽管不太受欢迎)方向。当我尝试获取 mux.CurrentRoute 时仍然出现零指针错误。

更新(2015-01-04 @ 6:17PM EST):我能够从中间件 func 访问请求(例如:r.URL),但仍然无法访问 mux.Route(例如:mux.CurrentRoute( r))。在多看多路复用源之后,我认为这是因为当前的多路复用上下文没有设置,因为路由器还没有执行匹配器(因此它不知道它当前在哪个路由上,直到中间件之后已经完成)。但是,我仍然不确定如何解决这个问题,或者重新构建我的代码来处理这个问题。

0 投票
2 回答
1218 浏览

go - Golang net/http 和 Gorilla:在处理程序之前运行代码

是否可以使用 net/http 包和/或任何 gorilla 库在进入处理程序之前在每个 URL 上执行一些代码?例如,检查连接是否来自列入黑名单的 IP 地址?

0 投票
1 回答
422 浏览

go - 在 Gorilla / Mux 中反转子路由器

我想获取命名子路由的路径,但下面的代码不起作用。当我尝试在非子路由上使用相同的逻辑时,它工作正常。如何获取命名子路由的路径?

上面给出了这个错误:

现在,如果我这样做 router.HandleFunc("/home", c.GetHomeHandler).Name("home"),它工作得很好。

感谢你的帮助。

更新:

这是一个合理的解决方法,但它避免了创建子路由。这对我上面的例子来说很好,但可能并不理想,因为你不会得到子路由的所有好处。

谢谢!

0 投票
4 回答
3101 浏览

go - 无法按键获取大猩猩会话值

我不能以这种方式从会话中获得价值,它是nil

完整代码:

输出:

首先我打开 urlhttp://localhost:3000/setSession并获得输出:

然后我打开 urlhttp://localhost:3000/getSession并得到输出:

为什么valWithOutType是 nil,尽管我将它设置为请求/setSession

更新

我根据@isza 的答案更改了代码,但会话值仍然是nil.

0 投票
2 回答
1349 浏览

web-applications - Go Gorilla mux 处理 API 请求

我想从以下 Gorilla Mux 路由器 input.package main 中获取地图结构

例如,

服务0.0.0.0:3000/api/input并打印出字符串input

如果我希望能够接收以下请求怎么办:

0.0.0.0:3000/api/v3?id=hello&password=great&product=ipad&confirm=true

从这个请求中,我想得到一张地图:

0 投票
2 回答
4639 浏览

go - 用于子路径路由的 Gorilla Mux

我有以下路线:

随着我的路线越来越多,管理起来变得越来越困难。

我想做类似的事情:

所有处理程序在另一个包中分开

有什么方法可以在单独的包中匹配这些路径?

谢谢,

0 投票
1 回答
433 浏览

go - Gorilla Mux 处理 curl 请求

我想使用 Gorilla mux 来处理 api 请求。

命令将类似于:

卷曲http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello

我正在与以下处理程序一起服务:

但是对于curl请求,我只得到numbernottargetmessage's的形式值

使用 Gorilla mux 处理 api 请求的正确方法是什么?我需要子路由吗?

我只想接收任何形式的http请求http://0.0.0.0:8000/api/myapiname/v1?number=10&target=google.com&message=hello并能够将其键映射到值

谢谢!