相关疑难解决方法(0)

Velocity,检查字符串是否为空且不为空的最有效方法是什么

我经常遇到字符串值不存在和/或为空的情况.这是测试这种情况的最佳方法吗?

#if( $incentive.disclaimer && $!incentive.disclaimer != '' ) 
   $incentive.disclaimer 
#end
Run Code Online (Sandbox Code Playgroud)

velocity

27
推荐指数
3
解决办法
6万
查看次数

API 网关映射模板可选字段

我一直在 AWS API Gateway 上使用映射模板,特别是 DynamoDB 集成。我发现检查可选字段非常不方便。例如,我有一个如下所示的 JSON 有效负载:

{
    "optional_field": "abcd" 
}
Run Code Online (Sandbox Code Playgroud)

现在,为了将其放入数据库,我使用如下映射:

#set($hasOptionalField = $input.path('$.optional_field') != "")
{
    "TableName": "A_Table",
    "Item": {
        "id": {"S": "$context.requestId"}
#if($hasOptionalField),
        "optional_field": {"S": "$input.path('$.optional_field')"}
#end
    }
}
Run Code Online (Sandbox Code Playgroud)

根据Apache Velocity Reference,我应该能够使用更简单的语法来检查 null、empty、false 或 0,并自动回退到某个替代值,如下所示:

{
    "TableName": "A_Table",
    "Item": {
        "id": {"S": "$context.requestId"},
        "optional_field": {"S": "${input.path('$.optional_field')|'no_data'}"}
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以将其保留为原样,没有任何后备,但如果尝试将空字符串作为属性值,DynamoDB API 会给您一个错误。

API 网关映射模板似乎没有 100% 实现 Apache Velocity 规范?

api amazon-web-services amazon-dynamodb aws-api-gateway apache-velocity

3
推荐指数
1
解决办法
2447
查看次数