Skip to main content

rsiot/components/cmp_http_client/
mod.rs

1//! Компонент для обмена данными со сторонними системами по протоколу HTTP.
2//!
3//! Версия для выполнения на платформах x86-64 и ARM. Реализован на основе крейта reqwest.
4//!
5//! Можно выполнять GET, POST, PUT и DELETE методы HTTP.
6//!
7//! # Структура
8//!
9#![doc = include_str!("doc/diagram.svg")]
10//!
11//! Компонент состоит из одной задачи InjectPeriodic. С периодом [Config::period] на основе функции
12//! [Config::fn_periodic] формируются исходящие сообщения и передаются в шину MsgBus.
13//!
14//! | Название | Описание |
15//! |----------|----------|
16//! | Input | Принимает сообщения из шины сообщений MsgBus. На основе данных формируются HTTP-запросы. Запросы перенаправляются в задачу HttpClient. Конфигурирование осуществляется с помощью структуры RequestInputConfig |
17//! | Periodic | Задача периодически формирует HTTP-запросы и отправляет их в задачу HttpClient. Можно запусить несколько экземпляров. Конфигурирование осуществляется с помощью структуры RequestPeriodicConfig |
18//! | HttpClient | Задача отправляет сформированные HTTP-запросы серверу. Реализация данной задачи отличается в разных компонентах (cmp_http_client, cmp_http_client_esp, cmp_http_client_wasm). Ответы от сервера отправляются в задачу Response |
19//! | Response | Задача преобразует ответы от сервера в исходящие сообщения и отправляет в шину MsgBus. |
20//!
21//! # Конфигурация
22//!
23//! Конфигурация задаётся структурой [Config].
24//!
25//! # Примеры
26//!
27//! ## Пример 1
28//!
29//! Содержимое файла `config_http_client/mod.rs`:
30//!
31//! ```rust
32#![doc = include_str!("../../../examples/cmp_http_server_and_client/cmp_http_client.rs")]
33//! ```
34
35mod component;
36mod config;
37mod fn_process;
38mod tasks;
39
40pub use crate::components::shared_tasks::cmp_http_client::Error;
41pub use component::Cmp;
42pub use config::*;
43
44type Result<T> = std::result::Result<T, Error>;