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

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


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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:1605:643.mgul.16051-01_32_01 [2020/06/14 13:22]
kostylev
doc:1605:643.mgul.16051-01_32_01 [2020/06/23 12:59] (текущий)
kostylev [Программные зависимости]
Строка 6: Строка 6:
  
 Программный интерфейс входит в состав системы отображения метеорологических данных МФ МГТУ им. Н.Э. Баумана. Программный интерфейс входит в состав системы отображения метеорологических данных МФ МГТУ им. Н.Э. Баумана.
-Основные функции программного интерфейса состоят получении,​ передачи и обработке метеорологической информации в формате JSON.+Основные функции программного интерфейса состоят ​в получении,​ передачи и обработке метеорологической информации в формате JSON.
  
 ====== Структура системы ====== ====== Структура системы ======
Строка 13: Строка 13:
 Программный интерфейс в ходе своей работы использует Redis - резидентную систему управления базами данных NoSQL, работающую со структурами данных "​ключ-значение"​. Redis работает на порте 6379. Программный интерфейс в ходе своей работы использует Redis - резидентную систему управления базами данных NoSQL, работающую со структурами данных "​ключ-значение"​. Redis работает на порте 6379.
  
-====== ​Установка необходимых программных зависимостей ======+====== ​Программные зависимости ======
  
 Для функционирования программного интерфейса необходимо инсталлировать резидентную систему управления базами данных класса NoSQL Redis версии 6.0.1. Для функционирования программного интерфейса необходимо инсталлировать резидентную систему управления базами данных класса NoSQL Redis версии 6.0.1.
Строка 28: Строка 28:
   * graphql - модуль,​ предоставляющий возможность проектирования,​ используя архитектуру GraphQL   * graphql - модуль,​ предоставляющий возможность проектирования,​ используя архитектуру GraphQL
   * express-graphql - модуль,​ связывающий фреймворк express и graphql   * express-graphql - модуль,​ связывающий фреймворк express и graphql
-Все вышеперечисленные модули ​устанавливаются с помощью команды:​+  * fetch - модуль для отправки асинхронных запросов 
 +Все вышеперечисленные можно ​установить по-отдельности с помощью команды:​
  
 <​code>​$ npm install "​имя пакета"</​code>​ <​code>​$ npm install "​имя пакета"</​code>​
 +Также все программные зависимости можно установить одной командой. Данный процесс описан в разделе "​Установка программного интерфейса на сервер"​.
  
 Все вышеописанное программное обеспечение необходимо устанавливать на операционные системы семейства Linux и Windows. При использовании Windows единственным ограничением будет необходимое использование операционной системы Windows 7 или выше. Все вышеописанное программное обеспечение необходимо устанавливать на операционные системы семейства Linux и Windows. При использовании Windows единственным ограничением будет необходимое использование операционной системы Windows 7 или выше.
  
 +====== Установка программного интерфейса на сервер ======
 +===== Установка NO-SQL базы данных Redis =====
 +Сначала необходимо установить кэширующее средство Redis. Для этого:
 +  - Обновим пакет apt:
 +<​code>​$ sudo apt update</​code>​
 +2. Установим пакет build-essential:​
 +<​code>​$ sudo apt-get install build-essential</​code>​
 +3. Установим Redis:
 +<​code>​$ sudo apt install redis-server</​code>​
 +4. Перезагрузим Redis:
 +<​code>​$ sudo systemctl restart redis.service</​code>​
 +5. Поставим автозапуск сервера Redis при запуске сервера:​
 +<​code>​$ sudo systemctl enable redis.service</​code>​
 +6. Проверим работу Redis:
 +<​code>​$ redis-cli</​code>​
 +7. Введем команду:​
 +<​code>​$ ping</​code>​
 +В результате должно вывестись сообщение "​PONG",​ что будет означать успешную установку Redis
 +
 +===== Установка Node.js =====
 +
 +1. Установим сам Node.js:
 +<​code>​$sudo apt install nodejs </​code>​
 +2. Установим менеджер пакетов:​
 +<​code>​$sudo apt install npm </​code>​
 +
 +===== Установка программных зависимостей =====
 +Для установки ранее описанных программных зависимостей необходимо создать файл package.json,​ находящийся в приложении 1 данного программного документа,​ после чего, поместив его в директорию проекта,​ ввести команду:​
 +<​code>​$npm install</​code>​
 +Все необходимые программные зависимости установятся одной командой.
 ====== Настройка программного интерфейса ====== ====== Настройка программного интерфейса ======
  
Строка 42: Строка 74:
 app.use('/​GraphQL',​GraphQLRouter) app.use('/​GraphQL',​GraphQLRouter)
 </​code>​ </​code>​
 +Также допустимо и отчасти рекомендуется использовать GraphQL явно, вставляя его в основной файл Express-приложения для большего быстродействия,​ без добавления в папку routes.
  
 ====== Проверка работоспособности ====== ====== Проверка работоспособности ======
Строка 53: Строка 86:
 В результате должны прийти идентичные данные,​ содержащие откалиброванную метеорологическую информацию за 2019-04-04 с прибора "​РОСА-П",​ имеющего серийный номер "​01"​. В результате должны прийти идентичные данные,​ содержащие откалиброванную метеорологическую информацию за 2019-04-04 с прибора "​РОСА-П",​ имеющего серийный номер "​01"​.
  
 +====== Сообщения системному программисту ======
 +
 +^  **Сообщение** ​        ​^ ​ **Причины** ​    ​^ ​  ​**Действия системного программиста** ​    ​^ ​                                                 ​
 +|404 Error   ​| ​ Сервер,​ на котором функционирует программный интерфейс,​ выключен,​ либо не функционирует корректно. Запрос,​ отправленный серверу,​ не соответствует языкам запросов,​ описанных в руководстве программиста ​                 |   ​Проверить работоспособность сервера,​ при необходимости перезагрузить его. В случае,​ если сервер работает исправно,​ еще раз проверить запрос на предмет ошибок и опечаток,​ после чего повторить запрос. При необходимости переустановить программный интерфейс. ​           |
 +|Redis connection failed ​  ​| ​ База данных Redis, необходимая для работы программного интерфейса,​ либо выключена,​ либо работает неисправно. ​                 |   ​Проверить запущена ли база данных Redis. В случае повторного возникновения данного сообщения перезагрузить ее, или переустановить,​ при необходимости. ​           |
 +
 +====== Приложение 1 ======
 +===== Файл package.json =====
 +<​code>​
 +{
 +  "​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",​
 +  }
 +}
 +
 +</​code>​
  
doc/1605/643.mgul.16051-01_32_01.1592130179.txt.gz · Последние изменения: 2020/06/14 13:22 — kostylev