Для того, чтобы в виджетах, использующих Python-скрипты, учитывались права доступа пользователей:
- Должны быть настроены права доступа в панели администратора ViQube;
- В Dashboard Designer код виджета, использующий в качестве источника данных Python-скрипт,, должен содержать ACCESS_TOKEN во всех запросах на ViQube.
Запрос на ViQube с использованием ACCESS_TOKEN должен выглядеть следующим образом:
Блок кода | ||
---|---|---|
| ||
myheaders = {'X-API-VERSION': '<версия API>','authorization': 'Bearer ' + ACCESS_TOKEN} query = {<Json-запрос на Viqube>} #Запросы сохраняются на сервере с установленным ViQube в директории хранящей лог-файлы /docker-volume/viqube/apiLog/ resp = requests.post('http://<адрес сервера, на котором установлен ViQube>/viqube/metadata/query',headers=myheaders,json=query) # запрос на ViQube |
Пример – Запрос на Viqube с использованием ACCESS_TOKEN и демо-данных:
Блок кода | ||
---|---|---|
| ||
import requests
myheaders = {'X-API-VERSION':'3.4','authorization':'Bearer '+ACCESS_TOKEN}
query = query = {"database":"Magazin","groups":[{"attributes":[{"attrid":"YEAR","axis":"ROW","dimroleid":"Data_prodazhi"},{"attrid":"MONTH_NAME","axis":"ROW","dimroleid":"Data_prodazhi"},{"attrid":"Gorod","axis":"COLUMN","dimroleid":"Gorod_otpravki"}],"filters":[[]],"measures":[{"alias":"0-0","mid":"Srednyaya_tsena"}],"mgid":"Fakticheskie_prodazhi_v_rublyah","showempty":False,"time":[{"dimroleid":"Data_prodazhi","from":"2016-10-13","to":"2019-01-14"}]}],"limit":{"columns":30,"rows":100}}
resp=requests.post('http://192.168.44.217/viqube-load-balanced/metadata/query',headers=myheaders,json=query)
response = resp.json() |
Пример – Объекты на основе одного из доступных классов:
Блок кода | ||
---|---|---|
| ||
#-Гистограмма- my_chart = DataFrame() my_chart.cols = response['columns'] my_chart.rows = response['rows'] # Возвращаемые значения response['values'] нужно транспонировать my_chart.values = [list(x) for x in zip(*response['values'])] #-filter1- myFilter = Filter() myFilter.rows = response['rows'] #-filter2- myFilter2 = Filter() myFilter2.rows = response['columns'] |
Примечание |
---|
Для выполнения Python-скриптов, которые используют данные из ViQube, с установленным Python сервером, должен быть установлен pyton версии 3.6+ и библиотека 'requests'. |