Использование "является нулевым", когда получение цен не работает
Я пытаюсь получить элементы цены для хранилища блоков производительности, которые являются общими (не относятся к определенному центру обработки данных). Я вижу, что для них locationGroupId имеет значение пустое или нулевое, но я не могу заставить объектный фильтр работать с этим, запрос ничего не возвращает. Если я опускаю фильтр 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}}}
1 ответ
Причина, по которой первый запрос не работал, в то время как второй работал, заключалась в том, что я использовал команду "curl -sg" для выполнения запроса. Хотя это избавляет от необходимости экранировать символы {}[], оно также отключает экранирование других символов в URL -адресе - как пробел в "пусто". Изменение этого значения на "is%20null" решает проблему.
Я публикую это как ответ, так как считаю, что другие могут столкнуться с этой проблемой.