> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/ru/guide/devices-and-settings/connectivity/data-forwarding/navixy-ws.md).

# Navixy Web Service

Позвольте сторонней системе запрашивать исторические GPS-данные из Navixy через SOAP, запрашивая до 100 устройств и данные за один день за вызов.

Navixy Web Service предоставляет сторонней системе SOAP-конечную точку, к которой она обращается за данными мониторинга. Это вариант, который стоит выбрать, когда принимающая система предпочитает получать данные по своему расписанию или когда она не может принимать входящее соединение.

{% hint style="warning" %}
Navixy Web Service работает иначе, чем любой другой протокол в **Ретрансляция** блоке. Остальные протоколы отправляют каждое сообщение получателю по мере его поступления. Navixy Web Service ничего не отправляет: Navixy размещает конечную точку, а принимающая система запрашивает нужные ей данные.

Это имеет два следствия. Navixy никогда не подключается к принимающей системе, поэтому **Адрес** и **Порт** поля не используются. А поскольку принимающая система читает сохранённые данные, а не поток в реальном времени, запрос может охватывать прошлый период, что не поддерживает ни один другой протокол.
{% endhint %}

Поскольку данные передаются в XML через SOAP и не используется формат, специфичный для Navixy, этот протокол подходит любому партнёру, который может работать с WSDL.

В Navixy выберите **Navixy Web Service** в **Протокол** раскрывающийся список.

## Что возвращает конечная точка

Конечная точка возвращает по одной записи на каждую сохранённую позицию со следующими полями:

| Поле                 | Содержимое                                                                                                                                                  |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `deviceId`           | Идентификатор устройства, указанный в запросе                                                                                                               |
| `dateGps`            | Когда устройство зафиксировало позицию, в UTC                                                                                                               |
| `широта` и `долгота` | Положение в градусах                                                                                                                                        |
| `высота`             | Высота в метрах                                                                                                                                             |
| `speedGps`           | Скорость в километрах в час                                                                                                                                 |
| `курс`               | Направление по компасу, например `N`, `SE`, или `O`                                                                                                         |
| `Зажигание`          | Было ли включено зажигание                                                                                                                                  |
| `numSat`             | Количество спутников, использовавшихся устройством                                                                                                          |
| `одометр`            | Показания одометра, передаваемые устройством, в километрах                                                                                                  |
| `unitPlate`          | Регистрационный номер транспортного средства, привязанного к устройству                                                                                     |
| `eventId`            | Код события, согласно [Navixy Generic Protocol event identifiers](/docs/iot-logic-api/technologies/navixy-generic-protocol/predefined-event-identifiers.md) |

Два поля зависят от данных вне устройства. `unitPlate` Пусто, когда устройство не привязано к транспортному средству, а Navixy сокращает регистрационный номер, удаляя пробелы и дефисы и оставляя первые шесть символов. Устройство, которому не разрешено подключаться, вообще не возвращает записей, а не ошибку.

## Ограничения запросов

Каждый запрос должен оставаться в этих пределах, иначе конечная точка возвращает ошибку:

* Не более **100 идентификаторов устройств** на один запрос.
* Не более **один день** между датой начала и датой окончания. Небольшое превышение диапазона допускается, но запрос, охватывающий несколько дней, завершается с `Слишком длинный интервал`.

Чтобы получить данные за более длительный период, отправляйте по одному запросу в день.

## Перед началом работы

В отличие от других протоколов, вам ничего не нужно от третьей стороны. Вы сами выбираете логин и пароль, а принимающая система использует их для аутентификации.

Выберите логин, который еще не использует другой ретранслятор в вашей учетной записи, потому что Navixy идентифицирует ретранслятор по паре логин-пароль.

## Настройте конечную точку

{% stepper %}
{% step %}

### Откройте блок «Ретрансляция»

Перейдите в **Управление устройствами**, выберите устройство, затем найдите **Ретрансляция** блок.
{% endstep %}

{% step %}

### Откройте список протоколов

Нажмите **Протоколы**, затем нажмите **+** чтобы добавить конфигурацию.
{% endstep %}

{% step %}

### Укажите настройки Navixy Web Service

Заполните поля следующим образом:

* **Имя**: метка, которая идентифицирует этот ретранслятор
* **Протокол**: **Navixy Web Service**
* **Адрес**: любой допустимый адрес. Этот протокол его не использует, но поле обязательно.
* **Порт**: любой номер порта. Этот протокол тоже его не использует.
* **Вход**: логин на ваш выбор, который еще не используется другим ретранслятором
* **Пароль**: пароль на ваш выбор

Передайте логин и пароль стороне, которая будет запрашивать конечную точку.
{% endstep %}

{% step %}

### Включите и сохраните

Включите **Включено**, затем нажмите **Сохранить**.
{% endstep %}

{% step %}

### Привяжите ретранслятор к устройствам

В настройках каждого устройства **Ретрансляция** включите переключатель для созданного ретранслятора, затем нажмите **Сохранить**. Только привязанные устройства возвращают данные. External ID не используется этим протоколом.
{% endstep %}
{% endstepper %}

## Выполните запрос к конечной точке

Адрес WSDL зависит от платформы, на которой размещена ваша учётная запись:

| Платформа | WSDL                                                  |
| --------- | ----------------------------------------------------- |
| ЕС        | <https://soap.navixy.com/LocationDataService?wsdl>    |
| США       | <https://soap.us.navixy.com/LocationDataService?wsdl> |

Отправьте запрос в этой форме, указав логин и пароль в заголовке SOAP, а идентификаторы устройств и диапазон дат — в теле. Идентификаторы устройств — это значения IMEI устройств:

{% code overflow="wrap" %}

```xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org">
   <soapenv:Header>
      <tem:authentication>
         <login>username</login>
         <password>password</password>
      </tem:authentication>
   </soapenv:Header>
   <soapenv:Body>
      <tem:dataRequest>
         <!--1 to 100 repetitions:-->
         <deviceIds>866258048802349</deviceIds>
         <startDate>2022-08-30T00:00:00Z</startDate>
         <endDate>2022-08-31T00:00:00Z</endDate>
      </tem:dataRequest>
   </soapenv:Body>
</soapenv:Envelope>
```

{% endcode %}

Ответ содержит один `результат` элемент на каждую сохраненную позицию:

{% code overflow="wrap" %}

```xml
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns:getLocationDataResponse xmlns:ns="http://tempuri.org">
            <результат>
                <датаGps>2019-10-15T08:48:50.000Z</датаGps>
                <Зажигание>false</Зажигание>
                <широта>75.9270866</широта>
                <долгота>-85.5207616</долгота>
                <скоростьGps>0.0</скоростьGps>
                <номерТранспортногоСредства>JRT1550</номерТранспортногоСредства>
                <высота>284.0</высота>
                <курс>N</курс>
                <идентификаторУстройства>866258048802349</идентификаторУстройства>
                <numSat>15</numSat>
                <Одометр>59845</Одометр>
                <eventId>401</eventId>
            </result>
        </ns:getLocationDataResponse>
    </S:Body>
</S:Envelope>
```

{% endcode %}

## Управление конечной точкой

Чтобы изменить или отозвать доступ:

* Выключите переключатель в устройстве **Ретрансляция** блок, чтобы исключить это устройство из результатов запроса и оставить остальные доступными.
* Нажмите **Протоколы**, выберите строку и отредактируйте её, чтобы изменить логин или пароль. Запросы с использованием старых учётных данных перестанут работать сразу, поэтому предупредите запрашивающую сторону перед их изменением.
* Удалите конфигурацию из **Протоколы** списка, чтобы полностью отозвать доступ. Подтвердите в диалоге.

## Устранение неполадок

Когда запрос не возвращает данные, проверьте по порядку следующее:

1. Ретранслятор включён, и его переключатель активирован для устройств, по которым вы выполняете запрос.
2. Логин и пароль в заголовке SOAP совпадают с конфигурацией ретранслятора.
3. Идентификаторы устройств в запросе — это значения IMEI устройств в вашей учётной записи.
4. Диапазон дат охватывает период, когда эти устройства передавали данные.
5. Диапазон дат составляет не более одного дня, а в запросе указано не более 100 идентификаторов устройств.

Чтобы протестировать запрос перед написанием кода интеграции, используйте [SoapUI](https://www.soapui.org/downloads/soapui/):

1. Установите SoapUI.
2. Из **Файл** меню выберите **Новый SOAP-проект**.
3. Вставьте адрес WSDL для вашей платформы в **WSDL** поле.
4. Выберите **Создать примеры запросов для всех операций**, затем заполните учётные данные и идентификаторы устройств.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://navixy.com/docs/user/ru/guide/devices-and-settings/connectivity/data-forwarding/navixy-ws.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
