Я запускаю экземпляр Cloudify 2.7.0. Мне нужно получить доступ к Cloudify API из приложения Java, и я нашел несоответствие между возвращенным JSON и документом, который документирован в документации Cloudify. API
/service/applications
В документации я могу прочитать, что она должна возвращать следующую строку JSON
{
"status" : "success",
"response" : [ "petclinic", "travel" ]
}
Но если я сделаю тот же запрос к моему экземпляру Cloudify, я получаю следующую строку JSON
{
"status" : "success",
"response" : {
"petclinic": "",
"travel":""
}
}
В java-приложении информация JSON хранится в следующем POJO (сгенерированном с помощью JSONSchema2POJO)
// CloudifyResponse.java
public class CloudifyResponse {
@JsonProperty("response")
private Response response;
@JsonProperty("status")
private String status;
// getters and setters
}
// Response.java
public class Response {
@JsonProperty("helloworld")
private String helloworld;
@JsonProperty("petclinic")
private String petclinic;
// getters and setters
}
Я использую библиотеку Джексона для десериализации JSON в POJO. Поскольку вы можете видеть, что строка JSON десериализуется в POJO, в которой каждое приложение istantiated является полем POJO. Это может быть большой проблемой для разработки приложения. Фактически, когда экземпляры приложения меняются, возвращается JSON, и нам нужно обновить структуру POJO, чего я не могу сделать во время выполнения.
Вы знаете, изменил ли API-интерфейс Cloudify структуру JSON-ответа? Есть ли способ получить документированный вывод JSON вместо того, который я получаю.
заранее спасибо
Джулио
Начиная с версии 2.7. Сервисный контроллер (который вы здесь называете) устарел и фактически остается доступным для обратной совместимости. Документация действительно неверна в отношении возвращаемой структуры json. Мой совет - использовать обновленный API /{version}/deployments/applications/description
Как описано здесь, этот API фактически возвращает json, содержащий список объектов ApplicationDescription, так как приложение развертывается, структура ответа остается по существу тем же самым, но содержащийся список растет.