Это старая версия документа!
В данном программном документе приведено руководство системного программиста по установке и настройке программы «Программный интерфейс взаимодействия системы отображения метеорологических данных с базой данных измерительной информации», предназначенной для передачи системе отображения метеорологической информации из базы данных.
Программный интерфейс входит в состав системы отображения метеорологических данных МФ МГТУ им. Н.Э. Баумана. Основные функции программного интерфейса состоят в получении, передачи и обработке метеорологической информации в формате JSON.
Программный интерфейс состоит из двух частей: программного интерфейса REST(порт 3000) и программного интерфейса GraphQL(порт 4000). Они круглосуточно работают на сервере, ожидая HTTP-запрос метода GET. При получении нового запроса происходит его обработка, согласно заранее определенному сценарию. Программный интерфейс в ходе своей работы использует Redis - резидентную систему управления базами данных NoSQL, работающую со структурами данных «ключ-значение». Redis работает на порте 6379.
Для функционирования программного интерфейса необходимо инсталлировать резидентную систему управления базами данных класса NoSQL Redis версии 6.0.1. Также необходимо установить программную платформу Node.js версии 12.16.3, а также ряд npm-пакетов и модулей:
Все вышеперечисленные можно установить по-отдельности с помощью команды:
$ npm install "имя пакета"
Также данные программные зависимости можно установить разом. Данный процесс описан в разделе «Установка программного интерфейса на сервер».
Все вышеописанное программное обеспечение необходимо устанавливать на операционные системы семейства Linux и Windows. При использовании Windows единственным ограничением будет необходимое использование операционной системы Windows 7 или выше.
Сначала необходимо установить кэширующее средство Redis. Для этого:
$ sudo apt update
2. Установим пакет build-essential:
$ sudo apt-get install build-essential
3. Установим Redis:
$ sudo apt install redis-server
4. Перезагрузим Redis:
$ sudo systemctl restart redis.service
5. Поставим автозапуск сервера Redis при запуске сервера:
$ sudo systemctl enable redis.service
6. Проверим работу Redis:
$ redis-cli
7. Введем команду:
$ ping
В результате должно вывестись сообщение «PONG», что будет означать успешную установку Redis
1. Установим сам Node.js:
$sudo apt install nodejs
2. Установим менеджер пакетов:
$sudo apt install npm
Для установки ранее описанных программных зависимостей необходимо создать файл package.json, находящийся в приложении 1 данного программного документа, после чего, поместив его в директорию проекта, ввести команду:
$npm install
Все необходимые программные зависимости установятся одной командой.
Для настройки программного интерфейса необходимо скачать архив программных документов, который находится в программном документе «Текст программы». Необходимо перенести папку «routes» в корневую папку проекта, после чего объявить использование в основном файле проекта:
app.use('/Rest',restRouter) app.use('/GraphQL',GraphQLRouter)
Также допустимо и отчасти рекомендуется использовать GraphQL явно, вставляя его в основной файл Express-приложения для большего быстродействия, без добавления в папку routes.
Для проверки работоспособности программного интерфейса необходимо проверить работоспособность интерфейсов REST и GraphQL. Для этого необходимо отправить два запроса:
http://название_домена:4000/graphql?query={calibr(time:"day",date:"2019-04-04",uname:"РОСА-П",serial:"01")}
http://название_домена:3000/api/calibr/day/2019-04-04/РОСА-П/01
В результате должны прийти идентичные данные, содержащие откалиброванную метеорологическую информацию за 2019-04-04 с прибора «РОСА-П», имеющего серийный номер «01».
Сообщение | Причины | Действия системного программиста |
---|---|---|
404 Error | Сервер, на котором функционирует программный интерфейс, выключен, либо не функционирует корректно. Запрос, отправленный серверу, не соответствует языкам запросов, описанных в руководстве программиста | Проверить работоспособность сервера, при необходимости перезагрузить его. В случае, если сервер работает исправно, еще раз проверить запрос на предмет ошибок и опечаток, после чего повторить запрос. При необходимости переустановить программный интерфейс. |
Redis connection failed | База данных Redis, необходимая для работы программного интерфейса, либо выключена, либо работает неисправно. | Проверить запущена ли база данных Redis. В случае повторного возникновения данного сообщения перезагрузить ее, или переустановить, при необходимости. |
{ "name": "diplom", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "~4.16.1", "express-graphql": "^0.9.0", "fetch": "^1.1.0", "graphql": "^15.0.0", "http-errors": "~1.6.3", "moment": "^2.24.0", "morgan": "~1.9.1", "node-fetch": "^2.6.0", "node-jq": "^1.11.0", "pug": "2.0.0-beta11", "redis": "^2.8.0", "request": "^2.88.0", } }