SOFTLAYER REST API使用objectFilter

时间:2017-04-28 15:10:06

标签: java json rest api ibm-cloud-infrastructure

我正在使用SOFTLAYER REST API来获取虚拟机列表,然后选择其中一个结果并获取有关所选计算机的更多详细信息。

我使用此URL通过主机名获取计算机详细信息,但我获得了所有计算机而不是我选择的计算机

网址:

https://api.softlayer.com/rest/v3.1/SoftLayer_Account/getVirtualGuests.json?objectMask=mask[id,hostname,fullyQualifiedDomainName,provisionDate,powerState,operatingSystem[id,passwords[password,username],softwareDescription[longDescription]]]&objectFilter={"hostname":{"operation":"SLRAMONT02"}}

我该怎么办才能得到怀特的结果?

我使用了相同url的python并得到了预期的结果但是在调试之后我发现python正在将JSON转换为XML并使用SOAP API。

我不打算使用python API而是使用JAVA。我可以使用JAVA API发出相同的请求吗?

1 个答案:

答案 0 :(得分:0)

这基本上在这里回答:Softlayer filtering not working

在您的情况下,您需要使用以下过滤器:

objectFilter={"virtualGuests":{"hostname":{"operation":"SLRAMONT02"}}}

我还建议您查看:How to use object filter with softlayer rest api?

不幸的是,Softlayer-Java API尚不支持对象过滤器,这在此处注释:
Object Filters in Softlayer in Java
https://github.com/softlayer/softlayer-java/issues/30

如果您确实需要在Java中使用对象过滤器,可以尝试使用RESTFul,以下链接中有一些RESTful示例。

https://www.mkyong.com/webservices/jax-rs/restfull-java-client-with-java-net-url/ https://www.mkyong.com/webservices/jax-rs/restful-java-client-with-apache-httpclient/