#java #cumulocity
#java #cumulocity
Вопрос:
Есть ли простой способ получить управляемый объект приложения микросервиса с помощью Java SDK? Или как мне получить идентификатор приложения с помощью JavaSDK?
Пример использования: мой микросервис реагирует на операции. В качестве идентификатора операционного устройства я использую управляемый объект приложения микросервиса (каждый микросервис получает его). Чтобы считывать все ожидающие операции, мне нужно знать идентификатор этого управляемого объекта. С помощью REST API можно получить идентификатор приложения микросервиса, а затем использовать его для запроса представления управляемого объекта следующим образом: {{url}}/inventory/managedObjects?type=c8y_Application_33175
Ответ №1:
Идеальным способом идентификации управляемого объекта был бы внешний идентификатор (если у вас еще нет идентификатора).
Внешние идентификаторы гарантированно уникальны для клиента, поэтому вы не рискуете, что при запросе к нему вы получите более одного результата.
Обратите внимание, что, как правило, не рекомендуется «использовать» внутренне созданные структуры для ваших пользовательских решений. Особенно, если они не документированы. Вы не знаете, что произойдет с этими структурами в будущем (они могут быть удалены, иметь разные значения, …).
Поэтому лучше всего создать собственный managedObject для представления вашего microservice и присвоить ему externalId. например:
{
"type": "c8y_Application",
"externalId": "my-application-name"
}
(за типом нет определенного значения, поэтому вы также можете поместить туда то, что хотите. Однако кортеж type и externalId должны быть уникальными для клиента)
По сути, это тот же механизм, который также используется устройствами для идентификации управляемых объектов на платформе.