Инструменты пользователя

Инструменты сайта


doc:1605:643.mgul.16051-01_31_01

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:1605:643.mgul.16051-01_31_01 [2020/06/28 14:54]
kostylev [Входная информация]
doc:1605:643.mgul.16051-01_31_01 [2021/12/14 06:45] (текущий)
kostylev
Строка 33: Строка 33:
  
 Все вышеописанное программное обеспечение необходимо устанавливать на операционные системы семейства Linux и Windows. При использовании Windows единственным ограничением будет необходимое использование операционной системы Windows 7 или выше. Все вышеописанное программное обеспечение необходимо устанавливать на операционные системы семейства Linux и Windows. При использовании Windows единственным ограничением будет необходимое использование операционной системы Windows 7 или выше.
 +
 +====== Описание решаемой задачи ======
 +Программный интерфейс работает в режиме 24/7 на сервере мониторинговой системы,​ ожидая запросы на получение данных. Вместе с программным интерфейсом постоянно работает Redis, который расположен на порте сервера 6379.
  
  
Строка 40: Строка 43:
 Список всех возможных запросов к программному интерфейсу REST: Список всех возможных запросов к программному интерфейсу REST:
 ^  **Запрос** ​        ​^ ​ **Получаемые данные** ​                                                        ^ ^  **Запрос** ​        ​^ ​ **Получаемые данные** ​                                                        ^
-{calibr(time:"​last5min",​uname:" ", ​serial: ""​)} ​ | Откалиброванные данные за последние 5 минут. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +| calibr/last5min/:uname/:​serial ​ | Откалиброванные данные за последние 5 минут. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    
-| calibr/​lastweek/:​uname:​serial ​ | Откалиброванные данные за последнюю неделю. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +| calibr/​day/:​date/:​uname/:​serial ​ | Откалиброванные данные за день. Обязательно нужно указать дату в формате "​год-месяц-день"​. ​   Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                  
-| calibr/​log/:​fdate/:​sdate/:​uname:​serial ​ | Откалиброванные данные за любой временной интервал. Обязательно надо указать начальную и конечную даты в формате "​год-месяц-день часы-минуты-секунды"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +| calibr/​lastweek/:​uname/:​serial ​ | Откалиброванные данные за последнюю неделю. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| calibr/​last_measurement/:​uname:​serial ​ | Откалиброванные последние измерения. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +| calibr/​log/:​fdate/:​sdate/:​uname/:​serial ​ | Откалиброванные данные за любой временной интервал. Обязательно надо указать начальную и конечную даты в формате "​год-месяц-день часы-минуты-секунды"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| calibr/​lastmin/:​uname:​serial ​ | Откалиброванные данные за последнюю минуту. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +| calibr/​last_measurement/:​uname/:​serial ​ | Откалиброванные последние измерения ​(за последние 10 минут). Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| not_calibr/​last5min/:​uname:​serial ​ | Неоткалиброванные данные за последние 5 минут. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +| calibr/​lastmin/:​uname/:​serial ​ | Откалиброванные данные за последнюю минуту. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| not_calibr/​lastweek/:​uname:​serial ​ | Неоткалиброванные данные за последнюю неделю. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    ​+| not_calibr/​last5min/:​uname/:​serial ​ | Неоткалиброванные данные за последние 5 минут. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер). Пример:​ http://​webrobo.mgul.ac.ru:​3000/​db_api_REST/​not_calibr/​last5min/​Hydra-L/​01 ​                    | 
-| not_calibr/​log/:​fdate/:​sdate/:​uname:​serial ​ | Неоткалиброванные данные за любой временной интервал. Обязательно надо указать начальную и конечную даты в формате "​год-месяц-день часы-минуты-секунды"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    ​+| not_calibr/​lastweek/:​uname/:​serial ​ | Неоткалиброванные данные за последнюю неделю. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер). Пример:​ http://​webrobo.mgul.ac.ru:​3000/​db_api_REST/​not_calibr/​lastweek ​                   ​
-| not_calibr/​last_measurement/:​uname:​serial ​ | Неоткалиброванные последние измерения. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    ​+| not_calibr/​log/:​fdate/:​sdate/:​uname/:​serial ​ | Неоткалиброванные данные за любой временной интервал. Обязательно надо указать начальную и конечную даты в формате "​год-месяц-день часы-минуты-секунды"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер). Пример:​ http://​webrobo.mgul.ac.ru:​3000/​db_api_REST/​not_calibr/​log/​2021-06-30%2013:​44:​50/​2021-06-30%2013:​47:​57/ ​                   ​
-| not_calibr/​lastmin/:​uname:​serial ​ | Неоткалиброванные данные за последнюю минуту. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    |+| not_calibr/​last_measurement/:​uname/:​serial ​ | Неоткалиброванные последние измерения ​(за последние 10 минут). Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер). Пример:​ http://​webrobo.mgul.ac.ru:​3000/​db_api_REST/​not_calibr/​last_measurement ​                   ​
 +| not_calibr/​lastmin/:​uname/:​serial ​ | Неоткалиброванные данные за последнюю минуту. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер). Пример:​ http://​webrobo.mgul.ac.ru:​3000/​db_api_REST/​not_calibr/​lastmin ​                    ​
 +| not_calibr/​day/:​date/:​uname/:​serial ​ | Неоткалиброванные данные за день. Обязательно нужно указать дату в формате "​год-месяц-день"​. ​   Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер). Пример:​ http://​webrobo.mgul.ac.ru:​3000/​db_api_REST/​not_calibr/​day/​2021-09-09 ​                  |
 Для отправки запроса к программному интерфейсу REST необходимо обратиться к следующему URL: Для отправки запроса к программному интерфейсу REST необходимо обратиться к следующему URL:
-<​code>​ http://​название_домена:​3000/​запрос </​code>​+<​code>​ http://​название_домена:​3000/​db_api_REST/​запрос </​code>​
  
 Список всех возможных запросов к программному интерфейсу GraphQL: Список всех возможных запросов к программному интерфейсу GraphQL:
 ^  **Запрос** ​        ​^ ​ **Получаемые данные** ​                                                        ^ ^  **Запрос** ​        ​^ ​ **Получаемые данные** ​                                                        ^
-| calibr/last5min/:​uname:​serial ​ | Откалиброванные данные за последние 5 минут. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +{calibr(time:"​last5min",​uname:" ", ​serial: " "​)} ​| Откалиброванные данные за последние 5 минут. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| calibr/lastweek/:​uname:​serial ​ | Откалиброванные данные за последнюю неделю. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +{calibr(time:"​lastweek",​uname:" ", ​serial: " "​)} ​ | Откалиброванные данные за последнюю неделю. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| calibr/log/:fdate/:sdate/:​uname:​serial ​ | Откалиброванные данные за любой временной интервал. Обязательно надо указать начальную и конечную даты в формате "​год-месяц-день часы-минуты-секунды"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +{calibr(time:"​log",​fdate:" ",sdate: ​" ", ​uname:" ", ​serial: " "​)} ​ | Откалиброванные данные за любой временной интервал. Обязательно надо указать начальную и конечную даты в формате "​год-месяц-день часы-минуты-секунды"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| calibr/​last_measurement/​:​uname:​serial ​ | Откалиброванные последние измерения. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +{calibr(time:"​last_measurement",​uname:" ", ​serial: " "​)} ​ | Откалиброванные последние измерения. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| calibr/lastmin/:​uname:​serial ​ | Откалиброванные данные за последнюю минуту. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +{calibr(time:"​lastmin",​uname:" ", ​serial: " "​)} ​| Откалиброванные данные за последнюю минуту. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| not_calibr/last5min/:​uname:​serial ​ | Неоткалиброванные данные за последние 5 минут. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +{calibr(time:"​day",​date:"​ ",​uname:"​ ", serial: " ")} | Откалиброванные данные за день. Обязательно надо указать дату в формате "​год-месяц-день"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| not_calibr/lastweek/:​uname:​serial ​ | Неоткалиброванные данные за последнюю неделю. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +| {not_calibr(time:"​day",​date:"​ ",uname:" ", ​serial: " ")} | Неоткалиброванные данные за день. Обязательно надо указать дату в формате "​год-месяц-день"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| not_calibr/log/:fdate/:sdate/:​uname:​serial ​ | Неоткалиброванные данные за любой временной интервал. Обязательно надо указать начальную и конечную даты в формате "​год-месяц-день часы-минуты-секунды"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +| {not_calibr(time:"​last5min",​uname:"​ ", serial: " "​)} ​| Неоткалиброванные данные за последние 5 минут. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| not_calibr/​last_measurement/​:​uname:​serial ​ | Неоткалиброванные последние измерения. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | +{not_calibr(time:"​lastweek",​uname:" ", ​serial: " "​)} ​ | Неоткалиброванные данные за последнюю неделю. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
-| not_calibr/lastmin/:​uname:​serial ​ | Неоткалиброванные данные за последнюю минуту. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    |+{not_calibr(time:"​log",​fdate:" ",sdate: ​" ", ​uname:" ", ​serial: " "​)} ​ | Неоткалиброванные данные за любой временной интервал. Обязательно надо указать начальную и конечную даты в формате "​год-месяц-день часы-минуты-секунды"​. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
 +{not_calibr(time:"​last_measurement",​uname:" ", ​serial: " "​)} ​ | Неоткалиброванные последние измерения. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    | 
 +{not_calibr(time:"​lastmin",​uname:" ", ​serial: " "​)} ​| Неоткалиброванные данные за последнюю минуту. Для получения данных с конкретного прибора укажите uname и serial (название и серийный номер) ​                    ​| ​                    | 
 +Для отправки запроса к программному интерфейсу GraphQL необходимо отправить GET-запрос по протоколу HTTP на следующий URL: 
 +<​code>​ http://​название_домена:​4000/​graphql?​query=GraphQL-запрос </​code>​
 ===== Выходная информация ​ ===== ===== Выходная информация ​ =====
 +Выходные данные представлены в виде JSON-записей,​ ключом каждой из
 +которых является их уникальный номер записи в базе данных,​ а значением – словарь,​ включающий в себя общую информацию и измерения.
 +Пример одной записи,​ которая подается на выход:
 +<​hidden>​
 +<​code>​
 +"​1294425":​ {
 +"​Date":​ "​2020-05-14 11:​15:​38",​
 +"​uName":​ "​Тест Студии",​
 +"​serial":​ "​schHome",​
 +"​data":​ {
 +"​system_Version":​ "​2020-01-11",​
 +"​system_Upit":​ " 2.96",
 +"​system_RSSI":​ "​-61",​
 +"​system_MAC":​ "​60:​01:​94:​06:​05:​04",​
 +"​RTC_date":​ "​2020-05-14",​
 +"​RTC_time":​ "​11:​15:​32",​
 +"​BH1750_lux":​ "​426.67",​
 +"​BH1750_blinkmin":​ "​426",​
 +"​BH1750_blinkmax":​ "​426",​
 +"​BH1750_blink":​ "​0",​
 +"​TCS34725_red":​ "​10091",​
 +"​TCS34725_green":​ "​8868",​
 +"​TCS34725_blue":​ "​9148",​
 +"​TCS34725_clear":​ "​21810",​
 +"​TCS34725_redC":​ "​6943",​
 +"​TCS34725_greenC":​ "​5720",​
 +"​TCS34725_blueC":​ "​6000",​
 +"​TCS34725_clearC":​ "​18662",​
 +"​TCS34725_ir":​ "​3148",​
 +"​TCS34725_colorTemp":​ "​8804",​
 +"​TCS34725_colorTempCT":​ "​4683.52",​
 +"​TCS34725_lux":​ "​506.57",​
 +"​BMP280_temp":​ "​14.49",​
 +"​BMP280_pressure":​ "​744.43",​
 +"​BME280_temp":​ "​13.87",​
 +"​BME280_humidity":​ "​46.69",​
 +"​BME280_pressure":​ "​743.2",​
 +"​DS18B20_temp":​ "​13.69",​
 +"​AM2321_temp":​ "​14",​
 +"​AM2321_humidity":​ "​41.6"​
 +}
 +}
 +</​code>​
 +</​hidden>​
 +Выше рассмотрена одна выходная запись,​ ключом которой является ее уникальный номер в базе – 1294425. Ее значение – словарь,​ в котором содержатся общие данные:​ время измерения,​ название прибора,​ его серийный номер. Также в значении записи находится словарь «data», в котором содержится вся метеорологическая и системная информация в формате «параметр – значение».
doc/1605/643.mgul.16051-01_31_01.1593345281.txt.gz · Последние изменения: 2020/06/28 14:54 — kostylev