Estoy usando la API REST de SOFTLAYER para obtener la lista de máquinas virtuales, luego selecciono uno de los resultados y obtengo más detalles solo sobre la máquina seleccionada.
Usé esta URL para obtener los detalles de la máquina por nombre de host, pero como resultado obtengo todas las máquinas y no la que seleccioné.
dirección 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"}}¿Qué debo hacer para obtener el resultado correcto?
Usé python con la misma URL y obtuve el resultado esperado, pero después de una depuración descubrí que python está convirtiendo JSON a XML y usando la API SOAP.
No planeo usar la API de python sino JAVA. ¿Puedo hacer la misma solicitud usando la API de JAVA?
Esto básicamente se respondió aquí: el filtrado de Softlayer no funciona .
En su caso, debe usar el siguiente filtro:
objectFilter={"virtualGuests":{"hostname":{"operation":"SLRAMONT02"}}}También recomiendo revisar: ¿Cómo usar el filtro de objetos con la API de descanso de capa suave?
Lamentablemente, los filtros de objetos aún no son compatibles con Softlayer-Java API, esto se comenta aquí:
Filtros de objetos en Softlayer en Java
https://github.com/softlayer/softlayer-java/issues/30
Si realmente necesita usar filtros de objetos en Java, puede probar usando RESTFul, hay algunos ejemplos de RESTful en los siguientes enlaces.
https://www.mkyong.com/webservices/jax-rs/restfull-java-client-with-java-net-url/ https://www.mkyong.com/webservices/jax-rs/restful-java- cliente-con-apache-httpclient/