![](/img/trans.png)
[英]Can't use “Handler” approach to adding a URLStreamHandler in AWS Lambda
[英]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網關,然后根據事件正文和路徑參數的內容自行填充自定義模型對象。
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.