В Wialon существует возможность объединить несколько команд в один запрос, и ответ на него будет представлен один общим JSON'ом.
Пример 1
Например нам нужно отправить онлайн уведомления нескольким пользователям. Если их немного, например 5, то можно отправить по запросу на каждого пользователя. Но если же пользователей десятки или сотни, удобнее будет объединить эти запросы в один.
Запросим всех пользователей на сервере Wialon Hosting, доступны пользователю, под которым осуществлен логин:
https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items& params={ "spec":{ "itemsType":"user", "propName":"sys_name", "propValueMask":"*", "sortType":"sys_name" },"force":1, "flags":1, "from":0, "to":0 }&sid=<your_sid>
Результат выполнения:
{ "searchSpec": { "itemsType": "user", "propName": "sys_name", "propValueMask": "*", "sortType": "sys_name", "propType": "" }, "dataFlags": 1, "totalItemsCount": 2, "indexFrom": 0, "indexTo": 0, "items": [{ "nm": "test_6512789", "cls": 1, "id": 648548, "uacl": -1 }, { "nm": "Trst 3467", "cls": 1, "id": 656124, "uacl": -1 }] }
Данному пользователю доступно два пользователя с ID 648548 и 656124. Отправим им онлайн уведомления, одним запросом при помощи команды core/batch. Отправлять уведомления пользователям можно при помощи команды user/update_user_notification, подробнее ее параметры и формат возвращаемого значения рассмотрены в разделе Отправка онлайн уведомлений пользователям.
https://hst-api.wialon.com/wialon/ajax.html?svc=core/batch& params=[{ "svc":"user/update_user_notification", "params":{ "h":"Hi there!", "d:"{\"body\":\"<span style=\\\"font-size:16px;color:green\\\">New notification with custom text format</span> \",\"head\":{\"c\":52428,\"fs\":\"18\"}", "s":"", "ttl":1359015606, "itemId":648548, "id":0, "callMode":"create" } },{ "svc":"user/update_user_notification", "params":{ "h":"Hi there!", "d":";-)", "s":"", "ttl":1359015606, "itemId":656124, "id":0, "callMode":"create" } }]&sid=<your_sid>
Результат выполнения:
[ [1, { "id": 1, "t": 1359013247, "d": {\"body\":\"<span style=\\\"font-size:16px;color:green\\\">New notification with custom text format</span> \",\"head\":{\"c\":52428,\"fs\":\"18\"}", "h": "Hi there!", "s": "" }], [1, { "id": 1, "t": 1359013247, "d": ";-)", "h": "Hi there!", "s": "" }] ]
Проверить получение уведомлений можно из графического интерфейса зайдя в систему под любым из пользователей-получателей.
Пример 2
Объединим в одном запросе сразу 2 запроса по поиску элементов: поиск объектов с определенной маской имени и принадлежащих определенной учетной записи, и поиск ресурсов, в котором есть водители с определенной маской имени
hst-api.wialon.com/wialon/ajax.html?svc=core/batch¶ms={"params":[{"svc":"core/search_items","params":{"spec":{"itemsType":"avl_unit","propName":"sys_name,rel_user_creator_name","propValueMask":"Volvo*,chdi_test","sortType":"sys_name","propType":"sys_name,rel_user_creator_name"},"force":1,"flags":1,"from":0,"to":0}},{"svc":"core/search_items","params":{"spec":{"itemsType":"avl_resource","propName":"drivers","propValueMask":"new*","sortType":"drivers","propType":"propitemname"},"force":1,"flags":256,"from":0,"to":0}}],"flags":1}&sid=022d9a2cd00ab180126d0ed9f2c01df3
Ответ
[ { "searchSpec":{ "itemsType":"avl_unit", "propName":"sys_name,rel_user_creator_name", "propValueMask":"Volvo*,chdi_test", "sortType":"sys_name", "propType":"sys_name,rel_user_creator_name", "or_logic":"0" }, "dataFlags":1, "totalItemsCount":4, "indexFrom":0, "indexTo":0, "items":[ { "nm":"Volvo", "cls":2, "id":20685653, "mu":0, "uacl":-1 }, { "nm":"Volvo awesome", "cls":2, "id":21728414, "mu":0, "uacl":-1 }, { "nm":"Volvo XC40", "cls":2, "id":22088658, "mu":1, "uacl":-1 }, { "nm":"Volvo XC90", "cls":2, "id":21080147, "mu":0, "uacl":-1 } ] }, { "searchSpec":{ "itemsType":"avl_resource", "propName":"drivers", "propValueMask":"Alex*", "sortType":"drivers", "propType":"propitemname", "or_logic":"0" }, "dataFlags":256, "totalItemsCount":2, "indexFrom":0, "indexTo":0, "items":[ { "drvrs":{ "1":{ "id":1, "n":"Tolik", "c":"DF00023141660001", "jp":{ }, "ej":{ }, "pwd":"", "ds":"", "p":"+878444477", "r":0, "f":1, "ck":0, "ct":1570538900, "mt":1615368901, "bu":12808049, "pu":0, "bt":1615458327, "bs":0, "pos":{ "y":0, "x":0 }, "infr":{ "a":0, "t":1570541249, "ud":0, "ur":0, "uil":270, "uim":300, "uis":360, "uir":45, "ddt":0, "ddc":2, "ddil":600, "ddim":660, "ddis":720, "dbt":1570541249, "wdt":0, "wdil":3360, "wdim":3600, "wdis":4200, "twdt":0, "twdil":5400, "twdim":6000, "twdis":6750, "drt":2700, "drd":540, "dril":1570595249, "drim":1570598849, "dris":1570602449, "wrt":2700, "wrd":1440, "wril":1570924800, "wrim":1570932000, "wris":1570939200 } }, "2":{ "id":11, "n":"Alex Makedony", "c":"1000000852112001", "jp":{ }, "ej":{ }, "pwd":"", "ds":"", "p":"+14578474471", "r":0, "f":1, "ck":0, "ct":1610364416, "mt":1615368872, "bu":0, "pu":0, "bt":0, "bs":0, "pos":{ "y":0, "x":0 } } }, "drvrsmax":-1 }, { "drvrs":{ "1":{ "id":1, "n":"Alex", "c":"qwe", "jp":{ }, "ej":{ }, "pwd":"", "ds":"", "p":"", "r":0, "f":5, "ck":0, "ct":1483625018, "mt":1573807409, "bu":0, "pu":20275038, "bt":1585662360, "bs":0, "pos":{ "y":0, "x":0 }, "infr":{ "a":0, "t":1573807434, "ud":2573, "ur":0, "uil":270, "uim":300, "uis":360, "uir":45, "ddt":2573, "ddc":2, "ddil":600, "ddim":660, "ddis":720, "dbt":1573651533, "wdt":2573, "wdil":3360, "wdim":3600, "wdis":4200, "twdt":2573, "twdil":5400, "twdim":6000, "twdis":6750, "drt":0, "drd":540, "dril":1573705533, "drim":1573709133, "dris":1573712733, "wrt":0, "wrd":1440, "wril":1573948800, "wrim":1573956000, "wris":1573963200 } } }, "drvrsmax":-1 } ] } ]