用途:utoipa v5 用于在 Rust 中生成 OpenAPI 3.1 规范,通过宏在编译期把类型和路由转换为符合规范的 OpenAPI JSON,并与 Axum 集成。
主要能力:用 #[derive(ToSchema)] 标注结构体和枚举,可加 example 提升文档可读性;用 #[utoipa::path] 标注 Axum 处理函数,声明参数、请求体和响应;用 #[derive(OpenApi)] 汇总 paths、components、info、tags 等生成完整文档。
使用方式:在 Cargo.toml 添加依赖,例如 utoipa = { version = "5.4", features = ["axum_extras", "openapi_extensions"] },并配合 moka、serde_json。定义 ApiDoc 结构体后调用 ApiDoc::openapi() 得到规范,可序列化为 JSON 并通过 Axum 路由提供。示例中还用 moka 缓存生成的 JSON,设置 TTL 后由处理函数返回。
适用场景:为 Rust/Axum 服务生成接口文档、在编译期校验文档与代码一致性、需要缓存 OpenAPI JSON 的高性能服务。
限制:资料未提供完整功能范围、收费、平台支持或性能数据;具体版本行为与兼容性需以官方文档为准。