Использование "является нулевым", когда получение цен не работает

Я пытаюсь получить элементы цены для хранилища блоков производительности, которые являются общими (не относятся к определенному центру обработки данных). Я вижу, что для них 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" решает проблему.

Я публикую это как ответ, так как считаю, что другие могут столкнуться с этой проблемой.

Другие вопросы по тегам