如果没有用户输入,映射模板默认为None



我有一个API GET方法与lambda集成,在lambda集成映射模板。

映射模板:

{
"name" : "$input.params('name')",
"std_out" : "$input.params('std_out')" 
}

条件是将std_out的默认值设置为none,但如果用户在std_out中发送某些内容,则将为其分配用户值。我不知道如何使std_out默认为none,但仍然接受输入,如果用户传递任何。我尝试过的事情:

  1. 我认为的一种方法是,而不是使用GET,我将使用POST方法,不会使用任何映射模板。但这不是标准的方式。
  2. 如果不传递任何值,我可以要求用户发送None,但仍在探索是否可以在我的级别上做一些事情来减少用户的开销。那么使用GET方法有什么解决方案吗?

虽然VTL变量似乎允许替代值为空时,显然API网关不支持这一点,并且无法转换请求。

下一个最佳选择是使用内联if/else条件来执行相同的操作:
## setting to a variable for readability, but not strictly necessary
#set( $std_out = $input.params('std_out') )
{
"name" : "$input.params('name')",
"std_out": #if( $std_out != '' )"$std_out"#{else}"None"#end
}

如果用户没有传递字段,您想跳过传递字段,请将整个字段包装在if/else中:

{
## putting before 'name' so we don't have to deal with the comma there
#if( $input.params('std_out') != '' )
"std_out": "$input.params('std_out')",
#end
"name" : "$input.params('name')"
}

相关内容

  • 没有找到相关文章

最新更新