Вывести список VSI с несуществующим тегом, сервер возвращает {"error": "Internal Error", "code": "SoftLayer_Exception_Public"} - PullRequest
0 голосов
/ 19 октября 2018

Когда я использую несуществующий тег для перечисления VSI в api https://api.softlayer.com/mobile/v3.1/., сервер возвращает 200 {"error":"Internal Error","code":"SoftLayer_Exception_Public"}.

Обычно сервер должен возвращать 200 с [].Если в ответе есть ошибка, код возврата не должен быть 200.

Вот подробности:

2018/10/19 10:33:59 [DEBUG] Запрос URL: GET https://api.softlayer.com/mobile/v3.1/SoftLayer_Account/getVirtualGuests.jsonobjectFilter=%7B%22virtualGuests%22%3A%7B%22tagReferences%22%3A%7B%22tag%22%3A%7B%22name%22%3A%7B%22operation%22%3A%22in%22%2C%22options%22%3A%5B%7B%22name%22%3A%22data%22%2C%22value%22%3A%5B%5B%22not_exist_tag%22%5D%5D%7D%5D%7D%7D%7D%7D%7D&objectMask=mask%5Bid%2C+globalIdentifier%2C+hostname%2C+hourlyBillingFlag%2C+domain%2C+fullyQualifiedDomainName%2C+status.name%2C+powerState.name%2C+activeTransaction%2C+datacenter.name%2C+account.id%2C+maxCpu%2C+maxMemory%2C+primaryIpAddress%2C+primaryBackendIpAddress%2C+privateNetworkOnlyFlag%2C+dedicatedAccountHostOnlyFlag%2C+createDate%2C+modifyDate%2C+billingItem%5BorderItem%5Bid%2Corder.userRecord%5Busername%5D%5D%2C+recurringFee%5D%2C+notes%2C+tagReferences.tag.name%5D&resultLimit=0%2C100 2018/10/19 10:33:59 [DEBUG] Параметры: 2018/10/19 10:34:01 [DEBUG] Код состояния: 200 2018/10/19 10:34:01 [DEBUG] Ответ: {"error": "Internal Error", "code": "SoftLayer_Exception_Public"}

1 Ответ

0 голосов
/ 19 октября 2018

Ошибка, которую вы получили, заключается в том, что вы используете двойные скобки в атрибуте «value» фильтра объекта.

Я предлагаю вам использовать, как показано ниже:

"value":["not_exist_tag"]

Или вы можете попробовать использовать приведенный ниже вызов API rest:

https://[username]:[apiKey]@api.softlayer.com/rest/v3.1/SoftLayer_Account/getVirtualGuests.json?objectFilter={"virtualGuests":{"tagReferences":{"tag":{"name":{"operation":"in","options":[{"name":"data","value":["not_exist_tag"]}]}}}}}

И код состояния «внутренней ошибки» не должен быть 200, это проблема API SoftLayer, о которой уже сообщалось.

...