GetFullDomainsChanged - Получить полный список доменов, если хэш дерева доменов изменился.
Общая информация
-
Команда актуальна, начиная с версии 1.6.
-
Система сравнивает переданный в запросе хэш со значением хэша в БД доменов. Если хэш изменился, ответ будет содержать все доступные пользователю домены. Если хэш не изменился, ответ будет пустой.
-
Для суперюзера возвращает все домены от корня. Для всех остальных возвращает все домены от разрешенных доменов. Если домен указанный в роли не существует, он будет игнорирован без выброса ошибки.
-
В 1.18 появился улучшенный метод GetFullDomainsPartition.
Входные параметры
| Параметр | Значение | Формат значения | Расшифровка формата | Ссылка |
|---|---|---|---|---|
hash |
Хэш последнего изменения дерева доменов |
Целое положительное число или 0, когда список доменов запрашивается первый раз |
Выходные параметры
| Параметр | Значение | Формат значения |
|---|---|---|
array |
Массив объектов NbiDomain2 с описанием доменов |
NbiDomain2 |
hash |
Хэш последнего изменения дерева доменов |
Integer |
code |
Код ответа |
Integer |
detail |
Пояснение к ответу |
String |
Примеры команд и кодов
| Код | Описание |
|---|---|
0 |
Успешно |
Запрос
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<nbi:GetFullDomainsChanged>
<nbi:hash>0</nbi:hash>
</nbi:GetFullDomainsChanged>
</soapenv:Body>
</soapenv:Envelope>
Ответ
<soapenv:Envelope>
<soapenv:Body>
<ns:GetFullDomainsChangedResponse>
<ns:return>
<ax22:code>0</ax22:code>
<ax22:detail/>
<ax239:array xsi:type="ax239:NbiDomain2">
<ax239:descr>Root domain</ax239:descr>
<ax239:domain>root</ax239:domain>
<ax239:type>both</ax239:type>
</ax239:array>
<ax239:array xsi:type="ax239:NbiDomain2">
<ax239:descr>Anna domain</ax239:descr>
<ax239:domain>anna.root</ax239:domain>
<ax239:type>ap</ax239:type>
</ax239:array>
<ax239:array xsi:type="ax239:NbiDomain2">
<ax239:descr>BRAS domain</ax239:descr>
<ax239:domain>bras.root</ax239:domain>
<ax239:type>service</ax239:type>
</ax239:array>
<ax239:hash>8</ax239:hash>
</ns:return>
</ns:GetFullDomainsChangedResponse>
</soapenv:Body>
</soapenv:Envelope>
| Код | Описание ошибки |
|---|---|
2 |
Ошибка взаимодействия с базой данных доменов. |
Пример использования
Команда добавлена на кэширования списка доменов в сторонней системе (например, в Личном кабинете - ЛК).
Каждый раз, когда системе нужно отобразить список доменов, она делает запрос в NBI и в случае, когда домены не изменились, мгновенно получает пустой ответ и использует ранее построенный список доменов, который уже хранится в памяти ЛК.
Если ответ не пустой, список доменов в памяти ЛК заменяется на новый, новое значение хэша запоминается для последующих обращений.