robotech 1.0.1

Backend service implementation for the RoboTech platform, providing RESTful APIs and business logic for web applications.
Documentation
# RoboTech-RS

[English](README.md)

RoboTech-RS 是一个用 Rust 编写的后端服务工具库。本项目提供 RESTful 控制器层和业务逻辑层的常用的工具。

## 项目结构

本项目通过 Rust 的 feature flags 机制组织功能模块:

- `api` feature(默认启用):包含 API 接口和数据传输对象,提供统一的响应对象(RO)结构
- `base` feature:提供基础功能,包括日志记录、配置管理、环境变量处理
- `web` feature:基于 Actix-web 实现 Web 服务器功能
- `crud` feature:基于 SeaORM 实现数据库操作功能

## 技术栈

- Rust 2024 edition
- Actix-web 作为 Web 框架(在 web feature 中)
- SeaORM 作为数据库 ORM(在 crud feature 中)
- Utoipa 用于 OpenAPI 文档生成(在 api feature 中)
- Serde 用于序列化/反序列化(在 api feature 中)
- Chrono 用于时间处理(在 api feature 中)
- Tracing 生态系统用于日志记录(在 base feature 中)

## Feature Flags

本项目使用 feature flags 来控制依赖和功能:

- `api`(默认):启用 API 相关功能,包括响应对象(RO)和数据传输
- `base`:启用基础功能,如日志记录、配置管理、环境变量处理
- `web`:启用 Web 服务器功能(包含 base feature)
- `crud`:启用数据库 CRUD 操作(包含 base feature)

默认情况下启用 `api` feature。要使用 Web 服务器功能,可以启用 web feature:

```toml
[dependencies.robotech]
version = "0.8.0"
features = ["web"]
```

要使用数据库操作功能,可以启用 crud feature:

```toml
[dependencies.robotech]
version = "0.8.0"
features = ["web", "crud"]
```

## API 响应格式

本项目采用统一的响应格式,所有 API 响应都遵循以下结构:

```json
{
  "result": 1,
  "msg": "Operation completed successfully",
  "timestamp": 1700000000000,
  "extra": {},
  "detail": "Optional detailed information",
  "code": "Optional business code"
}
```

字段说明:
- `result`: 响应结果(Success, IllegalArgument, Warn, Fail)
- `msg`: 响应消息
- `timestamp`: 时间戳(毫秒)
- `extra`: 可选的额外数据
- `detail`: 可选的详细信息
- `code`: 可选的业务编码

## 快速开始

### 先决条件

- Rust 1.70 或更高版本
- PostgreSQL 数据库(如果使用 SeaORM)

### 构建项目

```bash
# 构建默认 features(api)
cargo build

# 构建 web 服务器功能
cargo build --features web

# 构建所有 features
cargo build --features web,crud
```

### 运行服务

```bash
# 运行服务(需要启用 web feature)
cargo run --features web

# 运行带数据库支持的服务
cargo run --features web,crud
```

## 模块说明

- `ro`: API响应对象,提供统一格式的响应
- `cst`: 应用中使用的常量
- `ctrl`: 处理HTTP请求的控制器
- `svc`: 业务逻辑服务
- `settings`: 配置管理
- `web_server`: Web服务器实现
- `db`: 数据库操作
- `log`: 日志功能
- `env`: 环境变量管理

## 许可证

本项目根据 MIT 许可证授权 - 查看 [LICENSE](LICENSE) 文件了解更多详情。