1

Группа геозон в отборе отчёта

Topic: Группа геозон в отборе отчёта

У нас в системе зареганы геозоны полей по годам. В прошлом году на этом поле было то, в этом - другое. Но сами геозоны зачастую совпадают. В результате, если интерактивно запрашивать отчёт по посещению геозон, возвращается большой список различных геозон включая дороги и смежные поля (если чел ехал по краю поля). Это не здорово.
Мы можем запрашивать посещение геозон только по списку плановых данных (должен был пахать это, затем то поле). Но тогда если чел был на третьем поле, мы за этот интервал не увидим никаких данных, как будто он не работал вообще. Поэтому мы хотим запрашивать отчёт по всем активным полям текущего года. Насколько я знаю, при текущей реализации отправки параметров в строке адреса (а не в теле запроса) у нас есть ограничение (дефолтное вроде бы 4Кб), которое может быть увеличено на вашей стороне у nginx, но оно всё равно есть, а полей у нас сотни. И получается, что мы можем уткнуться в ограничение и получить ошибку.
В связи с этим вопрос. Можно ли в отборах geozones (или geozones_ex), где указываются геозоны в формате gz%1_%2:%3 использовать группу геозон, в которую собраны интересующие нас геозоны?

2

Группа геозон в отборе отчёта

Re: Группа геозон в отборе отчёта

Лео wrote:

Насколько я знаю, при текущей реализации отправки параметров в строке адреса (а не в теле запроса) у нас есть ограничение (дефолтное вроде бы 4Кб), которое может быть увеличено на вашей стороне у nginx, но оно всё равно есть, а полей у нас сотни. И получается, что мы можем уткнуться в ограничение и получить ошибку.

Шлите POST-ом в теле запроса, там в лимит не упрётесь

3

Группа геозон в отборе отчёта

Re: Группа геозон в отборе отчёта

Т.е. вы считаете, перечисление всех полей - это более правильно, чем указание одной группы? Или группу нельзя указать?
Я нашёл единственное и непонятное упоминание данной возможности в документации:
https://c.radikal.ru/c26/2109/f3/39deafcffbb8.png
Можете пояснить формат использования групп геозон, если у меня нет никакого радиуса?

4

Группа геозон в отборе отчёта

(edited by Лео 08/09/2021 15:24:09)

Re: Группа геозон в отборе отчёта

Подскажите, где прочитать про возможность указания параметров в теле, а не в адресе ресурса?
https://sdk.wialon.com/wiki/ru/sidebar/ … /reqformat
Тут нет упоминания о данной возможности.

5

Группа геозон в отборе отчёта

Re: Группа геозон в отборе отчёта

https://sdk.wialon.com/wiki/ru/sidebar/remoteapi/apiref/reqformat/reqformat wrote:

Документация

говорит, что

Все запросы осуществляются только методом POST

Метод POST по определению используется для передачи данных в теле. Например, так об этом говорит wikipedia

Метод запроса POST предназначен для запроса, при котором веб-сервер принимает данные, заключённые в тело сообщения

Конкретная реализация зависит от используемого языка программирования / среды исполнения. Например, с помощью cURL

curl 'https://hst-api.wialon.com/wialon/ajax.html' \
--data-raw 'svc=core/search_item' \
--data-raw 'params={"id":123456,"flags":5}' \
--data-raw 'sid=13b1b93a7234a38b6cba1615ec7d0aeb'

6

Группа геозон в отборе отчёта

Re: Группа геозон в отборе отчёта

Отлично, значит использование поста априори уберегает нас от ограничения на заголовки. Хотя, в 1С есть как адрес ресурса, так и отдельно тело запроса, которое устанавливается другой командой, нежели адрес ресурса (УстановитьТелоИзСтроки).

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

Лео wrote:

Можете пояснить формат использования групп геозон, если у меня нет никакого радиуса?

7

Группа геозон в отборе отчёта

(edited by Лео 09/09/2021 13:25:20)

Re: Группа геозон в отборе отчёта

shmi wrote:

Метод POST по определению используется для передачи данных в теле.

Я уточнил у специалистов и мне подсказали, что вы заблуждаетесь. В POST-запросах есть QUERY-параметры - это адрес ресурса и это именно то указание параметров, которое у вас в примере в документации. На эту строку есть ограничение у веб-сервера и POST-запрос не спасает при таком способе указания параметров.

http://{host}/wialon/ajax.html?sid=<text>&svc=<svc>&params={<params>}

А есть BODY - это как раз тело. И в данном случае строка адреса будет свободна от параметров, т.к. они указаны в теле.
https://a.radikal.ru/a24/2109/0e/a0cad70c5723.png

8

Группа геозон в отборе отчёта

Re: Группа геозон в отборе отчёта

Лео
Я не писал, что в POST нельзя передавать query параметры. Но зачем? В этом случае он, по сути, не будет отличаться от GET. Прелесть же POST (как и его основное назначение) передача параметров в body.

С параметрами запросов Wialon работает гибко (берёт их и из body и из query). Если вам нужен способ работы с wialon без упирания в ограничения строки URL - используйте POST и шлите параметры в body.

На скрине все параметры передаются в body, строка адреса свободна от параметров, всё работает. Это и есть рекомендованный способ отправки запросов на wialon
https://forum.gurtam.com/misc.php?action=pun_attachment&amp;item=13275&amp;download=0

9

Группа геозон в отборе отчёта

Re: Группа геозон в отборе отчёта

shmi wrote:

Но зачем? В этом случае он, по сути, не будет отличаться от GET

Полностью согласен. Зачем в документации размещён именно такой пример?
Я примерно понял как указывать параметры в теле запроса и наверное мы перейдём на этот способ работы.
По запросу всё понятно. А по группам можете что-нибудь сказать?

10

Группа геозон в отборе отчёта

Re: Группа геозон в отборе отчёта

Лео wrote:

В связи с этим вопрос. Можно ли в отборах geozones (или geozones_ex), где указываются геозоны в формате gz%1_%2:%3 использовать группу геозон, в которую собраны интересующие нас геозоны?

Можно

"geozones_ex":{
  "zones":"gr1,gr2,gr3", // 3 группы с id=[1,2,3], префикс gr означает фильтрацию по группе
  "types":"1,1,0", // тип фильтрации, 1 - внутри геозон, 0 - вне. Выставляется отдельно для каждой из 3х групп
  "flags":0 // используется только для таблицы "Движение топлива", 1 - Учитывать только объекты с заправками
}

11

Группа геозон в отборе отчёта

Re: Группа геозон в отборе отчёта

Спасибо за ответ. В документации упоминается gu, а не gr. Это какой-то другой тип групп? Какие вообще бывают?

12

Группа геозон в отборе отчёта

Re: Группа геозон в отборе отчёта

Это какой-то другой тип групп? Какие вообще бывают?

gr - группа геозон
gz - геозона
gu - группа объектов