golang 有很多 mux 路由器。我发现的所有这些都假设我正在构建自己的 HTTP 服务器。但是,我想使用 aws apigateway 作为外部层,并将方法、路径、查询参数转发到我用 apex 部署的 lambda 函数(对于 aws lambda 函数,go shim)。所有 API 网关端点都将转发到一个 lambda 函数,因此需要连接的东西更少,例如权限等。
所以我想使用不错的 mux 库,因为它们能够解析正则表达式或路径变量,但在 Lambda 中使用它们并能够根据 url 路径调用正确的处理程序。
大多数mux路由器都有这样的用法:
router := NewRouter()
router.Add("GET", "/my_path/:id", MyHandler)
其中 MyHandler
是一种 http.HandlerFunc
然后服务器启动类似http.ListenAndServe(port, router)
但是在 AWS Lambda 中没有要启动的服务器,我只想使用 mux 来找到我应该调用的处理程序。
最佳答案
我创建了一个 lib为此目的。
基本思路是将json对象的apigateway请求上下文转化为http.Request
关于go - 有没有一种方法可以使用 mux 路由来选择处理程序而不使用 golang 的 http listenAndServe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424899/