Для того, чтобы в виджетах, использующих Python-скрипты, учитывались права доступа пользователей:
- Должны быть настроены права доступа в панели администратора ViqubeViQube;
- В Dashboard Designer код виджета, использующий в качестве источника данных Python-скрипт, должен содержать ACCESS_TOKEN во всех запросах на ViqubeViQube.
Запрос на 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':'23.24','authorization':'Bearer '+ACCESS_TOKEN} query = query = {"database":"Magazin","groups":[{"mgid":"Fakticheskie_prodazhi_v_rublyah","attributes":[{"dlid":"Data_prodazhi","attrid":"YEAR","axis":"ROW"},{"dliddimroleid":"Data_prodazhi"},{"attrid":"MONTH_NAME","axis":"ROW"},{"dliddimroleid":"GorodData_otpravkiprodazhi"},{"attrid":"Gorod","axis":"COLUMN","dimroleid":"Gorod_otpravki"}],"filters":[[]],"measures":[{"alias":"0-0","mid":"Srednyaya_tsena"}],"aliasmgid":"0-0"}]Fakticheskie_prodazhi_v_rublyah","filtersshowempty":[]False,"time":[{"dimroleid":"Data_prodazhi","from":"2016-10-13","to":"2019-01-14","dlid":"Data_prodazhi"}],"showempty":False}],"limit":{"rowscolumns":30,"columnsrows":5100}} 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'. |