【问题标题】:Cannot get the headers after I set the mapping template in API GATEWAY在 API GATEWAY 中设置映射模板后无法获取标头
【发布时间】:2020-02-29 01:56:44
【问题描述】:

我想为管理员用户调用一个带有标题和正文的 api,删除这样的用户数据:

apiClient.post('***endpoint***',
    { tableName: '***',
      id: id },
    {
      headers: {
        Authorization: accessToken
      }
    })

我想先在 lambda 中显示详细信息,然后再编写任何函数来访问我的数据库:

var AWS = require('aws-sdk')
AWS.config.update({ region: '***' })
var ddb = new AWS.DynamoDB()

exports.handler = async function (event , ctx , callback) {
    return event
};

在 APIGATEWAY 中,我设置了以下内容

{ 
    "Authorization" : "$input.params('Authorization'),
    "body" : $input.json('$') 
}

集成请求中的内容类型为application/json 然后当我在 Method Test 中测试 api 时。 在 Header 中,我输入"testaccesstoken", 在正文中,我输入{ "id":"1", "tableName":"test"}, 但是结果是{ "Authorization": "", "body": { "id": "1", "tableName": "test" } } 谁能向我解释为什么我仍然无法获得标题? 另外,当我在poseman中进行测试时,我会这样尝试: 我得到一个错误

我已经部署了 API,但为什么我不能在 postman 中测试??

【问题讨论】:

    标签: node.js amazon-web-services aws-lambda aws-api-gateway


    【解决方案1】:

    在您的 Postman 中,将您的标题设置为 Authorization 而不是 "Authorization"

    【讨论】:

      【解决方案2】:

      我注意到您提到了映射模板和传递行为,但没有提及在您的方法请求或 API 网关的集成请求中的标头字段中映射它。最近有一个answer here 我想可能会给你一些东西来验证是否设置正确,因为我怀疑这可能是问题所在。

      它还涵盖了使用代理集成,如果 cmets 中存在更具体的问题,请告诉我,如果需要,我会调整答案!

      【讨论】:

        猜你喜欢
        • 2020-09-28
        • 2019-06-06
        • 2018-06-28
        • 2017-11-30
        • 2017-12-29
        • 1970-01-01
        • 2015-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多