尝试在JavaScript中使用以下REST调用来检索特定日期的发票:
https://api.softlayer.com/rest/v3/SoftLayer_Account/getInvoices?objectFilter={"invoices":{"createDate":{"operation":"isDate","options":[{"name":"date","value":["05/01/2018"]}]}}}&objectMask=mask[createDate]
但是它总是失败,并显示错误无效参数。我什至尝试使用上一个问题的日期间隔答案:
Object Filter for Inovice create date
但是我仍然收到无效的参数错误。
答案 0 :(得分:0)
您收到的错误“ 无效参数”与Javascript调用本身有关。
当前,您正在发送的api调用及其结构是正确的,尽管特定的“ isDate”操作返回了空的api响应存在问题,但这已得到报告,并且其他操作正在使用过滤器。
同时我找到了一种解决方法,您可以使用“ betweenDate”并指定同一天,例如,请参见以下内容:
https://api.softlayer.com/rest/v3/SoftLayer_Account/getInvoices?objectFilter={"invoices":{"createDate":{"operation":"betweenDate","options":[{"name":"startDate","value":["05/01/2018 00:00:00"]},{"name":"endDate","value":["05/01/2018 23:59:59"]}]}}}&objectMask=mask[createDate]
对于我来说,我得到了确切日期的以下响应(就像'isDate'一样):
[
{
"createDate": "2018-05-01T02:23:56-04:00"
},
{
"createDate": "2018-05-01T08:34:17-04:00"
}
]
答案 1 :(得分:0)
感谢费尔南多。原来我没有用Javascript正确格式化URL。万一其他人遇到相同的问题,我需要按以下方式定义过滤器:
var filter = JSON.stringify({"invoices":{"createDate":{"operation":"betweenDate","options":[{"name":"startDate","value":["05/01/2018 00:00:00"]},{"name":"endDate","value":["05/01/2018 23:59:59"]}]}}});
然后我的API调用是这样:
https://api.softlayer.com/rest/v3/SoftLayer_Account/getInvoices?objectFilter=' + encodeURIComponent(filter) + '&objectMask=mask[invoiceTopLevelItems[totalRecurringAmount]]