1

Реализовать фильтр по дате изменения/создания геозон в запросе API

Тема: Реализовать фильтр по дате изменения/создания геозон в запросе API

Добрый день. Прошу рассмотреть возможность реализовать фильтр по дате изменения/создания. По запросу:
https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={"spec":{"itemsType":"avl_resource","propName":"zones_library","propValueMask":"*,*","sortType":"zones_library"},"force":1,"flags":4096,"from":0,"to":0}&sid=...

Задача состоят в том что необходимо запрашивать геозоны, которые были изменены с определённого периода (К примеру с 22.04.2020 с 22-23 часов). То есть необходим фильтр для поля "mt". К примеру в поле propValueMask можно было отфильтровать за период по дате изменения.

{
    "searchSpec": {
        "itemsType": "avl_resource",
        "propName": "zones_library",
        "propValueMask": "*,*",
        "sortType": "zones_library",
        "propType": "",
        "or_logic": "0"
    },
    "dataFlags": 4096,
    "totalItemsCount": 2,
    "indexFrom": 0,
    "indexTo": 0,
    "items": [
        {
            "zl": {
                "1": {
                    "n": "Моторостроителей ул., 190, М20",
                    "d": "1*1,1\nЄмират ойл",
                    "id": 1,
                    "f": 112,
                    "t": 3,
                    "w": 25,
                    "e": 7918,
                    "c": 2566940364,
                    "i": 2685553491,
                    "icon": "/avl_library_image/0/0/library/poi/Q_9.png",
                    "libId": 0,
                    "path": "library/poi/Q_9.png",
                    "b": {
                        "min_x": 35.2097579107,
                        "min_y": 47.8570621766,
                        "max_x": 35.2104260893,
                        "max_y": 47.8575118234,
                        "cen_x": 35.210092,
                        "cen_y": 47.857287
                    },
                    "ct": 1559820120,
                    "mt": 1562582401
                },


Это необходимо для синхронизации геозон с Wialon. Чтобы можно было забирать геозоны только те которые были изменены за определенный период.

2

Реализовать фильтр по дате изменения/создания геозон в запросе API

Re: Реализовать фильтр по дате изменения/создания геозон в запросе API

Maxsimo
Данные свойства присутствуют в ответе от сервера, логику фильтрацию вы можете реализовать очень просто на своей стороне.
Или есть какие-то подводные камни??

3

Реализовать фильтр по дате изменения/создания геозон в запросе API

Re: Реализовать фильтр по дате изменения/создания геозон в запросе API

Так как геозон более 4000 и будет больше. И чтобы избежать нагрузок на сервер Wialon и на систему в которой мы будем производить синхронизацию (перебирать их каждый раз и проверять каждую по дате изменения, а вдруг они не изменились вообще, не гонять не измененные массивы данных по сети каждый раз когда нужно синхронизировать данные). Возможно лучше будет наложить условия в запросе.

shmi пишет:

Maxsimo
Данные свойства присутствуют в ответе от сервера, логику фильтрацию вы можете реализовать очень просто на своей стороне.
Или есть какие-то подводные камни??

4

Реализовать фильтр по дате изменения/создания геозон в запросе API

Re: Реализовать фильтр по дате изменения/создания геозон в запросе API

Спасибо, всё чётко.

В настоящий момент propItems (коими являются и геозоны) не фильтруются ни в каких запросах. Т.е. запрашивая геозоны вы гарантированно получаете все геозоны ресурса. Это даёт возможность утверждать, что никакие данные не потеряются из-за неверного фильтра и на стороне клиента будут все данные.

Также отмечу, что для сокращения трафика "тяжелые" данные по геозонам вынесены в отдельный запрос resource/get_zone_data, а то, что приходит в search_items уже достаточно мало.

Подскажите, а как часто в вашем случае происходит синхронизация?

5

Реализовать фильтр по дате изменения/создания геозон в запросе API

Re: Реализовать фильтр по дате изменения/создания геозон в запросе API

Синхронизация будет производится каждые 15 минут. Так как изменения по геозонам могут производится многими пользователями. И необходимо чтобы данные по геозонам в системе были актуальны.

6

Реализовать фильтр по дате изменения/создания геозон в запросе API

Re: Реализовать фильтр по дате изменения/создания геозон в запросе API

Подскажите есть ли возможность реализовать данный фильтр по полю дата изменения? Синхронизация будет проходить в среднем каждые 15 минут.

shmi пишет:

Спасибо, всё чётко.

В настоящий момент propItems (коими являются и геозоны) не фильтруются ни в каких запросах. Т.е. запрашивая геозоны вы гарантированно получаете все геозоны ресурса. Это даёт возможность утверждать, что никакие данные не потеряются из-за неверного фильтра и на стороне клиента будут все данные.

Также отмечу, что для сокращения трафика "тяжелые" данные по геозонам вынесены в отдельный запрос resource/get_zone_data, а то, что приходит в search_items уже достаточно мало.

Подскажите, а как часто в вашем случае происходит синхронизация?