13个版本
0.5.0 | 2024年5月13日 |
---|---|
0.4.3 | 2023年9月12日 |
0.4.2 | 2023年3月20日 |
0.4.1 | 2022年3月12日 |
0.1.0 | 2021年3月21日 |
#607 in Rust模式
每月 199 次下载
在 2 crates 中使用
40KB
1K SLoC
openapi_type
此crate提供在启用相应功能时,标准库和一些常用库(如 chrono
, indexmap
, linked-hash-map
, time
和 uuid
)的静态类型信息。它还提供了一个 derive 宏,用于结构和枚举,以便在运行时访问它们的静态类型信息。
此crate的核心是 OpenapiType
trait。它有一个静态函数 schema
,它返回一个 OpenapiSchema
。它以方便的方式组装静态类型信息,用于生成的OpenAPI规范,但也适用于其他用例。
自定义类型
要在运行时访问自定义类型的静态类型信息,最简单的方法是使用 derive 宏
#[derive(OpenapiType)]
struct FooBar {
foo: String,
bar: u64
}
OpenAPI规范
使用上述类型,运行 FooBar::schema().into_schema()
将生成
type: object
title: FooBar
properties:
foo:
type: string
bar:
type: integer
format: int64
minimum: 0
required:
- foo
- bar
请注意,这并不适用于更复杂的类型。如果你的结构体字段是具有名称的类型(即 Type::schema().name
不为 None
),上面的模式将包含对该模式的引用。因此,始终要记得将 dependencies
放入你感兴趣的类型的规范中。
版本管理
与所有 Rust 包一样,此包将遵循语义版本控制指南。但是,更改 MSRV(最低支持的 Rust 版本)不被视为重大更改。
许可证
版权所有 (C) 2021-2024 Dominic Meiser 和 贡献者。
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
依赖项
~2–3.5MB
~62K SLoC