使用Lambda和Node.js获取调用AWS HTTP API的URL

4

我想为我的待办事项构建一些路由,例如:

  • 列表
  • 获取
  • 等等

因此,为了实现这一点,我想检查调用API的URL(如果有更好的方法,请告诉我)。我首先在一个简单的lambda中尝试,但是无法获取URL,这是我尝试过的:

'use strict';

exports.handler = async (event) => {
    
    let itsCallingFrom = event.requestContext.pathParameters;
    
    const response = {
        statusCode: 200,
        body: JSON.stringify('Calling from: ' + itsCallingFrom),
    };
    return response;
};

这是我的路由配置:

/listalltodos
    GET

这是事件所显示的内容:

enter image description here

这是我获得的信息:"Calling from: undefined"

有什么想法如何获取它吗?

谢谢


有点晚了,但是:pathParametersevent中而不是event.requestContext中...此外,event.pathParameters是一个对象,所以将其连接成字符串可能会产生一些意想不到的结果(例如它被字符串化为[object Object])。但是,由于您的路由似乎没有任何参数(例如某个元素ID或类似的变量部分,即路径中的可变部分),因此event.pathParameters也可能是nullundefined - derpirscher
1个回答

3
在HTTP API中,event对象的形式如此处所示。它不具有pathParameters等参数。
相反,你可以使用以下内容:
  • event.rawQueryString
  • event.rawPath
或者如果你只需要参数,则可以使用:
  • event.queryStringParameters——如果没有提供参数,则该参数将不存在,因此你可以使用:
let itsCallingFrom = event.queryStringParameters || 'none';

1
太好了,我一直在寻找event.rawPath这个有效的方法 :) 谢谢Marcin。 - ElKePoN
也许文档在此期间发生了变化,但所引用的文档明确说明确实存在 event.pathParameters(尽管如果匹配的路由未定义任何参数,则可能不总是存在)。 - derpirscher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接