Skip to content

Описание REST интерфейсов

dtorov edited this page Jan 26, 2018 · 9 revisions

Здесь и далее, сервис запущен на системе с ip адресом 192.168.1.1 и портом 4468.
Для авторизации сторонних клиентов используется генерируемый под каждого клиента токен, передающийся в каждом сообщении в параметре key(используется обозначение {token}).
Ответ сервера всегда содержит сериализованный JSON.

Проверка работоспособности


GET: http://192.168.1.1/status?key={token}
Ответ: { "result" : "ok"}

result - если не "ok", то описание ошибки

Управление цветом светофоров


GET: http://192.168.1.1/setlight?key={token}&pname=lab&state=1111
Ответ: {"result": "ok"}

pname - заданное имя платформы
state - значения светофоров в соответствии с схемой размещения. 1 - зелёный, 0 - красный
result - если не "ok", то описание ошибки

Управление шлагбаумами

GET: http://192.168.1.1/barrier?key={token}&pname=lab&b=b1&action=open
Ответ: {"result": "ok"}

pname - заданное имя платформы
b - имя шлагбаума - b1, b2
action - действие - open, close
result - если не "ok", то описание ошибки

Получение веса

GET: http://192.168.1.1/getweight?key={token}&pname=lab
Ответ: {"result": "ok", "weight": "", "error": false, "sensors": ""}

pname - заданное имя платформы
result - если не "ok", то описание ошибки
weight - значение веса в виде текста в формате ХХ,ХХХ
error - необязательный параметр, дополнительное описание ошибки
sensors - значение датчиков платформы в виде текста, 3 символа. 1 - цепь замкнута, 0 - разомкнута

Получение значений датчиков

GET: http://192.168.1.1/getsensors?key={token}&pname=lab
Ответ: {"result": "ok", "sensors": ""}

pname - заданное имя платформы
result - если не "ok", то описание ошибки
sensors - значение датчиков платформы в виде текста, 3 символа. 1 - цепь замкнута, 0 - разомкнута

Получение списка зарегистрированных карт

GET: http://192.168.1.1/card/getlist?key={token}
Ответ: {"result": "ok", "cardlist": [{"id":"079,42385","role":"regular","state":true,"name":"M1"}]}

result - если не "ok", то описание ошибки
cardlist - массив карт:
id - текст, идентификатор карты в формате EM-Marine - три символа серии, запятая, пять символов номера карты
role - роль карты: regular, temp, guard
state - true/false, пока не используется
name - текст, описание кому выдана карта

Добавление карты

GET: http://192.168.1.1/card/add?key={token}&card={"id": "079,50225","role": "regular", "state": true, "name": "M5"}
Ответ: {"result": "ok"}

card - сериализованный JSON добавляемой карты
id - текст, идентификатор карты в формате EM-Marine - три символа серии, запятая, пять символов номера карты
role - роль карты: regular, temp, guard
state - true/false, пока не используется
name - текст, описание кому выдана карта
result - если не "ok", то описание ошибки

Удаление карты

GET: http://192.168.1.1/card/release?key={token}&card={cardid}
Ответ: {"result": "ok"}

card - текст, идентификатор карты в формате EM-Marine - три символа серии, запятая, пять символов номера карты
result - если не "ok", то описание ошибки

Отправка сообщений на табло

GET: http://192.168.1.1/scoreboard/send?key={token}&pname=lab&sbname=sb3&message=привет
Ответ: {"result": "ok"}

name - имя табло в конфигурационном файле
message - текст, сообщение для вывода
result - если не "ok", то описание ошибки

Реакция на внешние события

GET: http://192.168.1.1/event?key={token}&pname=lab&data={"action": "letIn"}
Ответ: {"result": "ok"}

pname - заданное имя платформы
data - сериализованный JSON
action - набор действий для выполнения. Задаётся в конфигурационном файле
result - если не "ok", то описание ошибки


Исходящие сообщения

Со своей стороны, СКУД отправляет вышестоящей системе(адрес http://127.0.0.1/niva_elevator/hs/rav_nais) сообщения о событии прикладывания карты к считывателю и произведённом взвешивании.

Считывание карты

GET: http://127.0.0.1/niva_elevator/hs/rav_nais/event?pname=weight&reader=2&id=080,16631
Ответ: не анализируется
pname - заданное имя платформы
reader - номер считывателя на платформе
id - текст, идентификатор карты в формате EM-Marine - три символа серии, запятая, пять символов номера карты

Автоматическое взвешивание

GET: http://127.0.0.1/niva_elevator/hs/rav_nais/event?pname=weight&weight=18,220&id=080,16631&sensors=101
Ответ: не анализируется
pname - заданное имя платформы
weight - значение веса в виде текста в формате ХХ,ХХХ
reader - номер считывателя на платформе
sensors - значение датчиков платформы в виде текста, 3 символа. 1 - цепь замкнута, 0 - разомкнута
id - текст, идентификатор карты в формате EM-Marine - три символа серии, запятая, пять символов номера карты