首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用API网关v2检查http请求方法

如何使用API网关v2检查http请求方法
EN

Stack Overflow用户
提问于 2021-01-23 02:32:48
回答 1查看 811关注 0票数 1

我的建筑:

integration

  • Plain

  • AWS HTTP /反向代理 Lambda function
  • Postman或浏览器

我正在尝试检查请求方法来处理操作,基于this回答,它们可以重传

代码语言:javascript
复制
'use strict';

const AWS = require('aws-sdk');
const dynamo = new AWS.DynamoDB.DocumentClient();

exports.handler = async (event) => {

    switch (event.httpMethod) {
        case 'GET':
            break;
        default:
            throw new Error(`@@@@ Unsupported method "${event.httpMethod}"`);
    }
    return {
        statusCode: 200,
        body: JSON.stringify({message: 'Success'})
    };
};

我在lambda中粘贴了类似的代码,但是它不起作用,我在日志中得到了这个错误:

代码语言:javascript
复制
"errorMessage": "@@@@ Unsupported method \"undefined\"",

这个lambda是由我的HTTP触发的,路由有GET方法。

如果我返回事件,我可以看到方法是GET或POST,或者其他什么,请看:

有人知道这是怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-23 03:19:36

HTTP (v2)的输入对象模式()不同于REST (与link不同)。

对于Http,可以从event.requestContext.http.method获得方法。

所以,看起来会是这样。

代码语言:javascript
复制
exports.handler = async (event) => {
    console.log('event',event);
    switch (event.requestContext.http.method) {
        case 'GET':
            console.log('This is a GET Method');
            break;
        default:
            throw new Error(`@@@@ Unsupported method "${event.httpMethod}"`);
    }
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65855161

复制
相关文章

相似问题

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