考虑以下查询。
const fetchItemsQuery = `query(
$paginationPageSize: Int!
$paginationPageNumber: Int!
$searchByNameRequest: String
$categoryID: String
) {
getItems(
paginationPageSize: $paginationPageSize
paginationPageNumber: $paginationPageNumber
searchByNameRequest: $searchByNameRequest
categoryID: $categoryID
) {
// ...
}
};
如果从客户端提交它与变量,
{
paginationPageSize: 20,
paginationPageNumber: 1
}
在AWS App Sync的日志中,它的读数是。
{
paginationPageSize: 20,
paginationPageNumber: 1,
searchByNameRequest: null,
categoryID: null
}
我检查了来自浏览器的请求有效载荷--没有空,只有... ...
{
paginationPageSize: 20,
paginationPageNumber: 1
}
所以原因不在前台方面。
我发现 null
替换 申请解析模板:
{
"version" : "2017-02-28",
"operation": "Invoke",
"payload": {
"field": "listProduct",
"arguments": $util.toJson($context.args) // <- here
}
}
$util.toJson
使用Apache Velocity。
我能否避免 $util.toJson($context.args)
将替换我的请求变量中的空值?
很重要。 解决方案不应触及 明确 提交空值。
你可以尝试过滤掉来自 $context.args
图。
#set( $args = {} )
#foreach( $entry in $context.args.entrySet())
#if( $entry.value != $null )
#set( $junk = $args.put($entry.key, $entry.value) )
#end
#end
{
"version" : "2017-02-28",
"operation": "Invoke",
"payload": {
"field": "listProduct",
"arguments": $util.toJson($args)
}
}