Rest 通过Softlayer API获取ID信息

Rest 通过Softlayer API获取ID信息,rest,api,ibm-cloud-infrastructure,Rest,Api,Ibm Cloud Infrastructure,我在softlayer API上使用ObjectFilter时遇到麻烦 我正在测试Softlayer API以检索块存储的主机IQN、用户名和密码 我尝试了下面的命令,但是objectFilter根本不起作用 curl -g 'https://username:api_key@api.softlayer.com/rest/v3/SoftLayer_Network_Storage/storage_ID/getObject?objectMask=mask[id,username,allowedIpA

我在softlayer API上使用ObjectFilter时遇到麻烦

我正在测试Softlayer API以检索块存储的主机IQN、用户名和密码

我尝试了下面的命令,但是
objectFilter
根本不起作用

curl -g 'https://username:api_key@api.softlayer.com/rest/v3/SoftLayer_Network_Storage/storage_ID/getObject?objectMask=mask[id,username,allowedIpAddresses[ipAddress,allowedHost[name,credential[username,password]]]]'
它返回了3个网络对象,包括IQN、用户名、密码

所以我想通过下面的api命令按“ip地址”进行过滤,但不起作用。 (似乎objectFilter正在忽略)


我的API使用有问题吗

实际上过滤器正在工作,但您不会注意到,因为对象掩码和过滤器之间有细微的区别,请记住,对象筛选器可用于限制API返回的结果,它们与对象掩码的不同之处在于它们确定返回的数据类型对象(在这种特殊情况下,整个SoftLayer_网络_存储单个对象和您可以看到的关系属性通过使用对象掩码返回,例如[allowedIpAddresses]数组),而对象掩码定义要从返回的对象检索的属性

例如,另一种检索和演示过滤器工作方式的方法是,您可以尝试以下请求:

curl -g "https://[username]:[apiKey]@api.softlayer.com/rest/v3.1/SoftLayer_Account/getNetworkStorage?objectMask=mask[id,username,allowedIpAddresses[ipAddress,allowedHost[name,credential[username,password]]]]&objectFilter=%7B%22networkStorage%22%3A%7B%22allowedIpAddresses%22%3A%7B%22ipAddress%22%3A%7B%22operation%22%3A%22[ipAddress]%22%7D%7D%7D%7D"
此方法检索帐户的所有关联存储卷的阵列,包括Lockbox、NAS、EVault和iSCSI卷(其中包括您在其中的块存储)

您可以在不使用对象筛选器的情况下使用请求,并通过仅使用对象掩码验证返回的所有对象,然后将完整请求与对象筛选器一起使用,以验证是否通过使用您在其上定义的IP地址缩小了返回到块存储的单个对象的对象范围

有关更多信息,请参见以下内容:


在您的指导下,我尝试了它并看到了不同之处,但我真的不知道如何检索单个对象,因为我对REST API非常陌生。您能帮助我更完整地使用API吗?我想检索按IP地址过滤的单个对象。通过使用SoftLayer\u Network\u Storage::getObject,您已经只返回了单个对象与筛选器所处理的数据类型相同的对象,但使用SoftLayer_Account::getNetworkStorage返回一个对象数组,请记住筛选器处理返回的值,因此如果对具有特定属性(如AllowedipAddress)的返回对象使用筛选器,则在掩码返回whole allowedIpAddresses属性。我真诚地建议您阅读我之前提供的SLDN文档。下面是另一个与SLDN Api对象筛选器相关的论坛:
curl -g "https://[username]:[apiKey]@api.softlayer.com/rest/v3.1/SoftLayer_Account/getNetworkStorage?objectMask=mask[id,username,allowedIpAddresses[ipAddress,allowedHost[name,credential[username,password]]]]&objectFilter=%7B%22networkStorage%22%3A%7B%22allowedIpAddresses%22%3A%7B%22ipAddress%22%3A%7B%22operation%22%3A%22[ipAddress]%22%7D%7D%7D%7D"