Apistos 项目教程
1. 项目的目录结构及介绍
Apistos 项目的目录结构如下:
apistos/
├── apistos-core/
├── apistos-gen/
├── apistos-gen-test/
├── apistos-models/
├── apistos-plugins/
├── apistos-rapidoc/
├── apistos-redoc/
├── apistos-scalar/
├── apistos-shuttle/
├── apistos-swagger-ui/
├── apistos/
├── examples/
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Cargo.toml
├── LICENSE-APACHE2.0.txt
├── LICENSE-MIT.txt
├── README.md
├── clippy.toml
├── deny.toml
└── rust-toolchain
目录介绍
- apistos-core: 包含 OpenAPI v3.0.3 的 trait 和通用模型。
- apistos-gen: 包含宏工具,用于从 Rust 模型生成 OpenAPI v3.0.3 文档。
- apistos-gen-test: 测试生成宏的工具。
- apistos-models: 包含基于 schemars 定义的 OpenAPI v3.0.3 模型。
- apistos-plugins: 包含扩展 apistos 的 trait 和工具。
- apistos-rapidoc: 连接 Apistos 和 RapiDoc 的桥接器。
- apistos-redoc: 连接 Apistos 和 Redoc 的桥接器。
- apistos-scalar: 连接 Apistos 和 Scalar 的桥接器。
- apistos-shuttle: 允许在 Shuttle 上运行带有 Apistos 文档的 actix-web 服务器。
- apistos-swagger-ui: 连接 Apistos 和 Swagger UI 的桥接器。
- apistos: actix-web 包装器,用于生成 OpenAPI v3.0.3 文档文件。
- examples: 示例项目。
- .gitignore: Git 忽略文件。
- CODE_OF_CONDUCT.md: 行为准则。
- CONTRIBUTING.md: 贡献指南。
- Cargo.toml: 项目的依赖和元数据配置文件。
- LICENSE-APACHE2.0.txt: Apache 2.0 许可证。
- LICENSE-MIT.txt: MIT 许可证。
- README.md: 项目说明文档。
- clippy.toml: Clippy 配置文件。
- deny.toml: 依赖项检查配置文件。
- rust-toolchain: Rust 工具链配置文件。
2. 项目的启动文件介绍
项目的启动文件通常位于 apistos
目录下,主要包含以下文件:
- main.rs: 项目的入口文件,负责启动 actix-web 服务器并加载配置。
// main.rs
use actix_web::{App, HttpServer};
use apistos::{ApiDoc, Apistos};
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new()
.wrap_api()
.with_json_spec_v3("openapi.json")
.build()
})
.bind("127.0.0.1:8080")?
.run()
.await
}
3. 项目的配置文件介绍
项目的配置文件主要位于项目根目录下的 Cargo.toml
文件中,该文件定义了项目的依赖、版本和其他元数据。
[package]
name = "apistos"
version = "0.3.0"
edition = "2018"
[dependencies]
actix-web = "4.0"
schemars = { package = "apistos-schemars", version = "0.8" }
apistos = "0.3"
[dev-dependencies]
# 开发依赖
配置文件介绍
- [package]: 定义了包的名称、版本和 Rust 版本。
- [dependencies]: 定义