首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将req (events.APIGatewayProxyRequest类型的变量)用作adapter.ProxyWithContext参数中的core.SwitchableAPIGatewayRequest值

不能将req (events.APIGatewayProxyRequest类型的变量)用作adapter.ProxyWithContext参数中的core.SwitchableAPIGatewayRequest值
EN

Stack Overflow用户
提问于 2022-03-24 15:02:50
回答 1查看 473关注 0票数 1

我是刚到戈朗来的。我似乎无法提供使用adapter.ProxyWithContext所需的论据。根据这个https://pkg.go.dev/github.com/awslabs/aws-lambda-go-api-proxy@v0.13.0/gorillamux#GorillaMuxAdapter.ProxyWithContext,它应该接受API代理事件或API V2事件。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2022-03-24 22:25:51

正如批注mkopriva所指出的,您不能直接将events.APIGatewayProxyRequest传递给adapter.ProxyWithContext

您需要创建SwitchableAPIGatewayRequest的新实例并将其传递给ProxyWithContext

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

代码语言:javascript
复制
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))
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71604856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档