> 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

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

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

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

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

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

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

## Перед началом

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

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

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

{% stepper %}
{% step %}

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

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

{% step %}

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

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

{% step %}

### Введите настройки Navixy Web Service

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

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

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

{% step %}

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

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

{% step %}

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

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

## Запросите конечную точку

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

| Платформа | WSDL                                                  |
| --------- | ----------------------------------------------------- |
| EU        | <https://soap.navixy.com/LocationDataService?wsdl>    |
| US        | <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 %}

Ответ содержит один `result` элемент для каждой сохранённой точки:

{% code overflow="wrap" %}

```xml
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns:getLocationDataResponse xmlns:ns="http://tempuri.org">
            <result>
                <dateGps>2019-10-15T08:48:50.000Z</dateGps>
                <Зажигание>false</Зажигание>
                <latitude>75.9270866</latitude>
                <longitude>-85.5207616</longitude>
                <speedGps>0.0</speedGps>
                <unitPlate>JRT1550</unitPlate>
                <altitude>284.0</altitude>
                <course>N</course>
                <deviceId>866258048802349</deviceId>
                <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. Из **Файл** меню выберите **New SOAP Project**.
3. Вставьте адрес WSDL для вашей платформы в **WSDL** поле.
4. Выберите **Create sample requests for all operations**затем введите учетные данные и идентификаторы устройств.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
