1

我正在尝试获取通用(不特定于某个数据中心)的性能块存储的价格项目。我可以看到这些将 locationGroupId 设置为空白或 null,但我似乎无法让 objectFilter 使用它,查询不返回任何内容。如果我省略 locationGroupId 过滤器,我会得到一个包含特定位置和非特定位置价格的结果。

GET /rest/v3.1/SoftLayer_Product_Package/759/getItemPrices.json?objectMask=mask[locationGroupId,id,categories,item]&objectFilter={"itemPrices":{"categories":{"categoryCode":{"operation":"performance_storage_space"}},"item":{"keyName":{"operation":"$=GBs"}},"locationGroupId":{"operation":"is null"}}}

我猜对象过滤器有问题,有什么想法吗?

如果我过滤 locationGroupId 509 它可以工作:

/rest/v3.1/SoftLayer_Product_Package/759/getItemPrices.json?objectMask=mask[locationGroupId,id,categories,item]&objectFilter={"itemPrices":{"categories":{"categoryCode":{"operation":"performance_storage_space"}},"item":{"keyName":{"operation":"$=GBs"}},"locationGroupId":{"operation":509}}}

4

1 回答 1

0

第一个查询不起作用而第二个查询不起作用的原因是我使用命令“curl -sg”来执行请求。虽然这消除了转义 {}[] 字符的需要 - 它还关闭了在 URL 中正确转义其他字符 - 就像“为空”中的空格一样。将其更改为“is%20null”可以解决问题。

我将其发布为答案,因为我发现其他人可能会遇到此问题。

于 2017-11-09T20:33:07.770 回答