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

时间:2016-09-26 21:05:50

标签: rest curl ibm-cloud-infrastructure

我正在尝试卷曲我在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的图像)。我最后是否错误地构建了我的网址??

1 个答案:

答案 0 :(得分:1)

这是您需要发送的结构:

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"

替换: USERNAME API_KEY 111111

e.g:

  

%22%3A%22的 111111 %22%7D%7D%7D

<强>参考