使用 objectFilter 限制 Softlayer 的 REST API 的输出?

Using objectFilter to limit output of Softlayer's REST APIs?

我正在尝试卷曲我在 Softlayer 上可用的图像列表。我当前的 curl 命令是:

curl 'https://USERNAME:API_KEY@api.softlayer.com/rest/v3/SoftLayer_Account/getBlockDeviceTemplateGroups.xml?objectMask=filteredMask\[id,name\]&objectFilter=\{"id":\{"operation":111111\}\}'`

但是没用。 objectMask 有效,但 objectFilter 似乎让一切都通过了,我仍然看到每张图片(不仅是 ID 为 111111 的图片)。我最后 URL 的结构是不是错了...?

这是您需要发送的结构:

curl "https://USERNAME:API_KEY@api.softlayer.com/rest/v3/SoftLayer_Account/getBlockDeviceTemplateGroups.xml?objectFilter={"blockDeviceTemplateGroups":{"id":{"operation":"111111"}}}&objectMask=id;name"

不幸的是,有必要使用 cURL 对特殊字符进行转义,所以你可以发送这个(对象过滤器正在编码):

curl "https://USERNAME:API_KEY@api.softlayer.com/rest/v3/SoftLayer_Account/getBlockDeviceTemplateGroups.xml?objectFilter=%7B%22blockDeviceTemplateGroups%22%3A%7B%22id%22%3A%7B%22operation%22%3A%22111111%22%7D%7D%7D&objectMask=id;name"

替换:用户名API_KEY111111

例如:

%22%3A%22111111%22%7D%7D%7D

参考文献: