====== REST API ====== ---- ===== Описание ===== ПО Статика 3 позволяет использовать технологию REST API в формате JSON. Программа в определённые моменты работы вызывает тот или иной метод. [[https://cloud.tenso-m.ru/index.php/s/nEfBBv36ROZnLvN/download|Описание API]] ==== Поддерживаемые команды ==== - Авторизация (если не используется http типа basic и если требуется); - Синхронизация справочников: грузы, контрагенты, автомобили, прицепы, вагоны, водители; - Отправка результатов взвешиваний. ===== Принцип работы ===== {{:start:программное_обеспечение:статика_3:rest1.png?nolink|}} Для настройки API следует выбрать соответствующий пункт в меню: {{:start:программное_обеспечение:статика_3:rest3.png?nolink|}} ==== Пример настроек для связи ==== {{:start:программное_обеспечение:статика_3:api1.png?nolink|}} {{:start:программное_обеспечение:статика_3:api2.png?nolink|}} {{:start:программное_обеспечение:статика_3:api3.png?nolink|}} * В адрес сервера прописывается IP-адрес или хост, __как есть__ (без http(s) и т.п., в конце тоже ничего не дописывается); * Порт по умолчанию **80**, для https **443**; * Логин и пароль указываются и для авторизации типа **BASIC**, и для авторизации по токену, согласно протоколу; * Команда авторизации используется только для авторизации по протоколу, в то время как BASIC используется автоматически при наличии её на сервере; * Команды вводить без слэша в начале. **Запрос строится по принципу:** - http(s = SSL включено) - адрес/хост - порт - тело запроса (может быть пустым) ==== Настройки для отправки взвешиваний в цикле ==== Для гарантированной отправки взвешивания во внешнюю систему имеет смысл использовать настройку цикличного отправления. Для этого следует включить опцию отправки результатов по таймеру в настройках API: {{:start:программное_обеспечение:статика_3:rest2.png?nolink|}} После этого каждое (или заключительное, в зависимости от настроек) взвешивание будет сначала сохраняться в промежуточную таблицу в БД, и с заданным интервалом отправляться во внешнюю среду. В случае успеха, взвешивание будет помечаться, как отправленное, и не будет отмечено на повторный круг. ==== Ручная отправка взвешиваний ==== Для ручной отправки взвешиваний выберите правой кнопкой мыши нужное взвешивание в журнале и выберите пункт **Отправить взвешивание по API**: {{:start:программное_обеспечение:статика_3:rest4.png?nolink|}} ===== Пример посылки ===== { "cmd_id": 8, "records": [ { "j_id": 2344, "tare_date": "12.05.2019 12: 32: 22", "brutto_date": "12.05.2019 13: 02: 44", "finish_date": "12.05.2019 13: 02: 46", "tare": 1243.0, "brutto": 3454.0, "netto": 2211.0, "good": "Лук", "sender": "ООО Павлов", "recipient": "ООО Романов", "payer": "ООО Романов", "car_number": "А232ВВ99", "trailer_number": "ЕН8789", "train_number": "", "driver": "Сидоров Павел Петрович", "rfid_code": "", "operator": "Иванов Иван Иванович", "photos_tare": ["data: image / jpg; base64, < … > "], "photos_brutto": ["data: image / jpg; base64, < … > "], "axles_brutto": [], "axles_tare": [], "susps": [], "downs": [], "bets": [], "additional": { " < col_name > ": " < value > " } } ] }