Научиться пользоваться веб-фреймворками Rust для создания HTTP-сервера, реализующего функционал "умного дома".
HTTP-сервер "Умный дом", предоставляющий API для:
- Управления структурой дома.
- Добавления и удаления комнат.
- Управления устройствами в комнатах.
- Генерации отчетов о состоянии дома.
-
Реализовать HTTP-сервер, который предоставляет следующие возможности:
- Управление домами: добавление, удаление, обновление.
- Управление комнатами: добавление, удаление, список комнат.
- Управление устройствами: добавление, удаление, изменение состояния устройства.
-
Написать клиент, который отправляет запросы к HTTP API умного дома. Клиент должен демонстрировать:
- Создание дома, комнат и устройств.
- Получение данных о доме, комнатах и устройствах.
- Обновление информации об устройствах.
-
Создать example общения с умным домом через HTTP-клиент. Пример должен включать:
- Добавление дома, комнат и устройств через HTTP.
- Получение списка комнат и устройств.
- Изменение состояния устройств.
-
Дополнительное задание:
- Хранить структуру дома в базе данных SQLite.
- Все операции чтения/записи должны выполняться с помощью ORM Diesel.
- Используйте
cargo fmt --check
для проверки форматирования. - Используйте
cargo clippy
для анализа кода. - Реализуйте тесты для проверки API.
- Обрабатывайте ошибки корректно, возвращая клиенту понятные сообщения.
Этот проект поможет вам освоить:
- Разработку RESTful API на Rust с использованием
axum
. - Работу с базами данных через ORM
diesel
. - Написание клиентского кода для взаимодействия с API.