簡體   English   中英

如何在AWS Lambda POJO處理程序中使用路徑參數

[英]How to use Path Parameters in AWS Lambda POJO handler

我正在嘗試在POJO處理程序中同時使用http正文和路徑參數。 當前沒有事件對象時,如何訪問路徑參數?

我的處理程序看起來像這樣:

@Override
public Object handleRequest(MyCustomModel model, Context context) {
  // Doing stuff with model that was deserialized in request body
  // but need path param '/some/path/{id}'
}

在這種情況下,最好自己處理事件對象。 為此,請為lambda配置具有lambda代理集成的API網關,然后根據事件正文和路徑參數的內容自行填充自定義模型對象。

這是AWS文檔示例摘錄,其中顯示了如何讀取事件對象:

    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {

    LambdaLogger logger = context.getLogger();
    logger.log("Loading Java Lambda handler of ProxyWithStream");


    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    JSONObject responseJson = new JSONObject();
    String name = "you";
    String city = "World";
    String time = "day";
    String day = null;
    String responseCode = "200";

    try {
        JSONObject event = (JSONObject)parser.parse(reader);
        if (event.get("queryStringParameters") != null) {
            JSONObject qps = (JSONObject)event.get("queryStringParameters");
            if ( qps.get("name") != null) {
                name = (String)qps.get("name");
            }
        }

        if (event.get("pathParameters") != null) {
            JSONObject pps = (JSONObject)event.get("pathParameters");
            if ( pps.get("proxy") != null) {
                city = (String)pps.get("proxy");
            }
        }

        if (event.get("headers") != null) {
            JSONObject hps = (JSONObject)event.get("headers");
            if ( hps.get("day") != null) {
                day = (String)hps.get("day");
            }
        }

        if (event.get("body") != null) {
            JSONObject body = (JSONObject)parser.parse((String)event.get("body"));
            if ( body.get("time") != null) {
                time = (String)body.get("time");
            }
        }
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM