43 个版本
0.13.4 | 2024 年 4 月 14 日 |
---|---|
0.13.3 | 2024 年 3 月 6 日 |
0.13.2 | 2024 年 1 月 22 日 |
0.13.1 | 2023 年 12 月 18 日 |
0.1.5 | 2020 年 10 月 16 日 |
#115 in Rust 模式
49,532 每月下载量
用于 14 crates
3.5MB
6.5K SLoC
Aide
Aide 是一个代码优先的 API 文档和实用工具库。
lib.rs
:
Aide
aide
是一个以代码为中心的 Open API 文档生成库。它旨在与框架紧密集成并遵循其约定,而在不需要时尽量保持简单。
目标是最大限度地减少学习曲线、心理上下文切换,并使文档变得稍微不那么枯燥。
请参阅 示例 了解 Aide 如何与各种框架一起使用。
目前仅支持 Open API 版本 3.1.0
。
以前的 aide 版本严重依赖于宏,并依赖于 linkme
crate 来自动处理全局状态。虽然一切正常,但宏难以理解,rustfmt 无法与它们一起使用,代码补全也时好时坏。
在 0.5.0
中,aide 被重写,它基于传统的函数、类型推断以及基于构建器模式的声明式 API。
现在所有文档都可以在源代码中追踪[^1],不再有宏和全局魔法。[^2]
[^1]: 以及使用 [追踪] 范围
[^2]: 对于某些设置和共享状态,仍然使用线程局部上下文。
基于类型的生成
该库使用 schemars
为类型生成模式。对于基于 JSON 的 API,只需将 JsonSchema
与 [serde]'s Serialize/Deserialize
一起使用即可。
此外,使用 OperationInput
和 OperationOutput
trait 在框架中用于提取器和响应类型,以自动生成预期的 HTTP 参数和响应文档。
例如,一个Json<T>
提取器,如果实现了JsonSchema
,将生成一个具有T
模式的application/json
请求体。
声明式文档
所有手动文档都基于可组合的transform
函数和类似构建器模式的API。
支持的框架
- axum:
aide::axum
。 - actix-web由于缺乏开发资源目前不支持,但未来可能会再次支持。如果您使用
actix-web
,您还可以暂时使用基于宏的0.4.*
版本的库。
错误
代码生成过程中可能会发生一些错误,这些错误通常可以安全忽略,但可能表明存在bug。
默认情况下,错误不会采取任何操作,为了处理错误,可以通过在线程局部上下文中注册错误处理程序来处理,使用aide::gen::on_error
。
为了防止静默吞咽潜在的错误,错误被选择记录,这可能会在没有足够上下文信息来确定错误是否实际上是错误的情况下发生。请注意,没有过滤器简单地对所有错误进行恐慌是不建议的,尤其是在生产环境中。
功能标志
默认情况下没有启用任何功能。
macros
:额外的辅助宏
第三方特质实现
bytes
http
serde_qs
(当与axum
一起使用时)
axum集成
axum
及其功能门
axum
axum-ws
axum-multipart
axum-headers
axum-extra
及其功能门
axum-extra
axum-extra-cookie
axum-extra-cookie-private
axum-extra-form
axum-extra-query
MSRV
该库将始终支持最新的稳定Rust版本,它可能支持旧版本,但不提供保证。
依赖关系
~2–17MB
~244K SLoC