Мы используем совокупность REST API. Работают регулярные уведомления в реальном времени, например. мы подписываемся на /alarms/*, запускаем наш цикл подключения/опроса, и когда мы создаем сигнал тревоги, мы получаем ожидаемый JSON. Мы не устанавливали какие-то специальные модули или операторы, это просто работает. Но когда мы пытаемся сделать то же самое с SmartREST, мы получаем эту ошибку, как только создается тревога:
40,,/alarms/177649296,Could not find any templates subscribed for the channel
Следуя справочному руководству (http://cumulocity.com/guides/reference/smartrest/ ) мы пробовали это так, когда все запросы имеют один и тот же X-Id-заголовок, и все запросы приводят к ожидаемому http-статусу 200 и без сообщений об ошибках, кроме последнего:
- Зарегистрируйте шаблон умного ответа, выполнив POST для /s
Body:11,102,,,$.channel
- Рукопожатие: POST в /cep/realtime
Тело:80
Ответ — наш clientId (например, 191het1z38bp7iq1m96jqqt8jnef) - Подпишитесь: POST в /cep/realtime
Текст:81,191het1z38bp7iq1m96jqqt8jnef,/alarms/*
- Подключить: POST к /cep/realtime
Текст:83,191het1z38bp7iq1m96jqqt8jnef
В обычном случае REST уведомление состоит из массива JSON с двумя элементами, каждый из которых имеет свойство «канал». Так что это то, что мы ожидаем от нашего шаблона ответа. Вместо этого мы получаем вышеупомянутую ошибку 40.
Наш шаблон ответа неверен? Разве он не соответствует X-Id должным образом? Что значит, что нет "подписанных на канал шаблонов"? Подписки выполняются для clientId, а не для конкретного шаблона ответа, и шаблоны в любом случае должны сопоставляться автоматически. Так что, вероятно, «шаблон» здесь означает «X-Id»? Документация кажется неоднозначной в отношении значения этого слова. Но в любом случае мы использовали один и тот же заголовок X-Id во всех запросах.
Любое указание на то, что мы делаем неправильно, будет оценено по достоинству, поскольку мы уже пробовали почти все.