AWS API Gateway HTTP API 如何传递字符串查询参数?

因此,我正在制作一个应用程序,需要 AWS API Gateway。我想使用HTTP API而不是REST API。我的代码看起来像这样


package main


import (

    "database/sql"

    "fmt"

    "strings"


    "github.com/aws/aws-lambda-go/lambda"

    _ "github.com/lib/pq"

)


here I make a connection to the database



func fetch(inte string, input string) string {

    if err != nil {

        panic(err)

    }

    switch inte {

    case "00":

{

            res = append(res, response)

        }


        switch len(res) {

        case 0:

            return "401"

        }

        

    case "01":

        

        }


        switch len(res) {

        case 0:

            return "402"

        }

        

    }


    return "404"

}


type LambdaEvent struct {

    Req string `json:"req"`

    Num string `json:"num"`

}


type LambdaResponse struct {

    Res string `json:"res"`

}


func LambdaHandler(event LambdaEvent) (LambdaResponse, error) {

    res := fetch(event.Num, event.Req)

    return LambdaResponse{

        Res: res,

    }, nil

}


func main() {

    lambda.Start(LambdaHandler)

}


因此,如您所见,这不是完整的代码。我与数据库建立连接,并使用请求字符串查询。所以我尝试了与http api相同的方法,但它只是给了我404,这意味着http api不会将查询字符串传递给lambda,所以我如何让我的api将数据传递给lambda。Rest api 工作 HTTP 不行。感谢您的任何帮助。


BIG阳
浏览 129回答 3
3回答

小唯快跑啊

我不熟悉APIGW的无服务器框架,但操作QueryString参数内置于APIGW控制台中。只需登录 AWS 并搜索 APIGateway。编辑 HTTP API,然后从左侧的菜单中选择。选择映射到您的 Lambda 函数的集成,然后编辑右侧的IntegrationsParameter Mappings

人到中年有点甜

如果您要使用无服务器框架部署 lambda 和 api 网关,则可以执行以下操作:hello:   handler: src/hello.handler   name: hello   events:     - http:         path: car/{id}/color/{color}         method: get

POPMUISE

假设您计划在 API Gateway 中使用 Lambda 代理集成,以下是访问查询参数需要执行的更改。导入(这具有所有相关github.com/aws/aws-lambda-go/eventsstructs)将 lambda 处理程序更改为func handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {现在,您可以以 Map 形式访问查询参数并执行选择逻辑request.QueryStringParameters当您返回 API Gateway 的响应时,请确保遵循结构,即至少返回状态代码以及可选的正文、标头等。events.APIGatewayProxyResponse无需在 API 网关上进行更改/配置即可通过 Lambda 代理集成传递查询参数您可以使用自己的请求和响应,但它们需要使用和 中定义的相应键。structsevents.APIGatewayProxyRequestevents.APIGatewayProxyResponse例如,在结构中添加以下内容以访问查询字符串参数。LambdaEventQueryStringParameters map[string]string `json:"queryStringParameters"`如果您刚开始使用 AWS Lambda,请查看 AWS SAM 以保持简单。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go