为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
BIG阳 2022-08-24 11:43:40
因此,我正在制作一个应用程序,需要 AWS API Gateway。我想使用HTTP API而不是REST API。我的代码看起来像这样package mainimport (    "database/sql"    "fmt"    "strings"    "github.com/aws/aws-lambda-go/lambda"    _ "github.com/lib/pq")here I make a connection to the databasefunc 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 不行。感谢您的任何帮助。
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

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


//img1.sycdn.imooc.com//63059e9300017c4a11450510.jpg

查看完整回答
反对 回复 2022-08-24
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

如果您要使用无服务器框架部署 lambda 和 api 网关,则可以执行以下操作:

hello:
  handler: src/hello.handler
  name: hello
  events:
    - http:
        path: car/{id}/color/{color}
        method: get


查看完整回答
反对 回复 2022-08-24
?
POPMUISE

TA贡献1765条经验 获得超5个赞

假设您计划在 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

例如,在结构中添加以下内容以访问查询字符串参数。LambdaEvent

QueryStringParameters map[string]string `json:"queryStringParameters"`

如果您刚开始使用 AWS Lambda,请查看 AWS SAM 以保持简单。


查看完整回答
反对 回复 2022-08-24
  • 3 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信