登录
首页 >  Golang >  Go问答

无法使用 req(events.APIGatewayProxyRequest 类型的变量)作为 adapter.ProxyWithContext 参数中的 core.SwitchableAPIGatewayRequest 值

来源:stackoverflow

时间:2024-04-06 20:09:30 122浏览 收藏

从现在开始,努力学习吧!本文《无法使用 req(events.APIGatewayProxyRequest 类型的变量)作为 adapter.ProxyWithContext 参数中的 core.SwitchableAPIGatewayRequest 值》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我是 golang 新手。我似乎无法提供使用adapter.proxywithcontext 所需的参数。根据此 https://pkg.go.dev/github.com/awslabs/[电子邮件受保护]/gorillamux#gorilla muxadapter.proxywithcontext 它应该接受 api gateway 代理事件或 api gateway v2 事件。

import (
    "context"
    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
    routerProxy "github.com/awslabs/aws-lambda-go-api-proxy/gorillamux"
)

var adapter *routerProxy.GorillaMuxAdapter

func main() {
    cfg := config.NewConfig()
    s := app.NewApp(cfg, log)

    adapter = routerProxy.New(s.SetupRoutes())
    lambda.Start(lambdaHandler) // execute lambda and the specific lead handler
}

func lambdaHandler(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
    c, err := adapter.ProxyWithContext(ctx, req)
    return c, err
}


i'm having this error: 
``var req events.APIGatewayProxyRequest
cannot use req (variable of type events.APIGatewayProxyRequest) as core.SwitchableAPIGatewayRequest value in argument to adapter.ProxyWithContextcompilerIncompatibleAssign

正确答案


正如评论者 mkopriva 指出的,您不能直接将 events.apigatewayproxyrequest 传递给 adapter.proxywithcontext

您需要创建 switchableapigatewayrequest实例并将其传递给 proxywithcontext

这应该可以解决您的问题:

import "github.com/awslabs/aws-lambda-go-api-proxy/core"

[...]

func lambdaHandler(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
    return adapter.ProxyWithContext(ctx, *core.NewSwitchableAPIGatewayRequestV1(&req))
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>