Amazon web services AWS Lambda函数-访问路径和请求参数值

Amazon web services AWS Lambda函数-访问路径和请求参数值,amazon-web-services,aws-sdk,aws-api-gateway,Amazon Web Services,Aws Sdk,Aws Api Gateway,对于我的POC,创建了简单的lambda函数,它将通过RESTAPI提供emp信息。 创建lambda函数并使用API网关访问所有emp数据。 在访问特定数据时面临一些挑战 我在找 emp/1-检索emp id emp/_search?name=“苹果”-搜索名称包含苹果 问题是如何在java代码中检索路径和请求参数 public class TestAwsLambdaFunction implements RequestHandler<Map<String, Object>,

对于我的POC,创建了简单的lambda函数,它将通过RESTAPI提供emp信息。 创建lambda函数并使用API网关访问所有emp数据。 在访问特定数据时面临一些挑战

我在找

emp/1-检索emp id emp/_search?name=“苹果”-搜索名称包含苹果

问题是如何在java代码中检索路径和请求参数

public class TestAwsLambdaFunction implements RequestHandler<Map<String, Object>, String> {

    @Override
    public String handleRequest(Map<String, Object> input, Context context) {
        String empID= null;
        try {
            @SuppressWarnings("unchecked")

            Map<String, String> pathParameters = (Map<String, String>) input.get("querystring");                

            empID= pathParameters.get("id");
            System.out.println(empID);
            // TO-Do Business logic - 


        } catch (Exception e) {
            // TODO: handle exception
        }
        return "Hello from Lambda!" + empID;
    }

}
公共类testawslambdfunction实现RequestHandler{
@凌驾
公共字符串handleRequest(映射输入、上下文){
字符串empID=null;
试一试{
@抑制警告(“未选中”)
MapPathParameters=(Map)input.get(“querystring”);
empID=pathParameters.get(“id”);
系统输出打印LN(empID);
//要执行业务逻辑-
}捕获(例外e){
//TODO:处理异常
}
返回“你好,来自Lambda!”+empID;
}
}
在RESTAPI调用中公开数据的最佳方法是什么。与Lambda或无服务器有点混淆。
可以选择通过页面显示数据。因为我是AWS的新手。请指导我

设置API网关时,您需要选择
Lambda代理集成
。这是官方文件


在这种情况下,API网关将把整个请求数据传递给Lambda,包括请求头、查询字符串参数、URL路径变量等。然后可以使用Java代码解析数据。

设置API网关时,需要选择
Lambda代理集成。这是官方文件


在这种情况下,API网关将把整个请求数据传递给Lambda,包括请求头、查询字符串参数、URL路径变量等。然后可以使用Java代码解析数据。

问题是如何在Java代码中检索路径和请求参数。

可以使用映射模板将请求正文中的$input.params('name')属性发送到Lambda函数

在Rest api调用中公开数据的最佳方式是什么

将代理集成与以下准则结合使用:

  • 避免贪婪的路径变量,可能除了catch-all 404
  • 避免使用任何方法
  • 定义请求模型并启用请求验证(记住默认情况下它是关闭的)
  • 在Lambda中,检查内容类型标头是否与某个请求模型匹配,如果不匹配,则返回415不支持的媒体类型状态代码(代理集成使用WHEN_NO_MATCH passthrough行为)。在该检查之后,您的Lambda可以假定请求验证已完全实施
本·凯霍


  • 问题是如何在java代码中检索路径和请求参数。

    可以使用映射模板将请求正文中的$input.params('name')属性发送到Lambda函数

    在Rest api调用中公开数据的最佳方式是什么

    将代理集成与以下准则结合使用:

    • 避免贪婪的路径变量,可能除了catch-all 404
    • 避免使用任何方法
    • 定义请求模型并启用请求验证(记住默认情况下它是关闭的)
    • 在Lambda中,检查内容类型标头是否与某个请求模型匹配,如果不匹配,则返回415不支持的媒体类型状态代码(代理集成使用WHEN_NO_MATCH passthrough行为)。在该检查之后,您的Lambda可以假定请求验证已完全实施
    本·凯霍