使用结构化类进行参数解析。
项目描述
defspec
从 dataclass
、attrs
、msgspec
等创建OpenAPI规范和文档。
为什么不...
[!NOTE]还有很多其他项目可以生成OpenAPI文档甚至验证数据。本项目不旨在替代它们。
本项目是私人倡议的遗产。在开发过程中,我发现使用msgspec
可以优雅地定义和生成API模式。OpenAPI组件可用于为各种项目生成API文档。因此,我决定将其提取出来,并将其转换为公共项目。
当您不想引入太多其他依赖项时,可以使用此项目作为低级组件或直接模块。
安装
pip install defspec
示例
flask
: examples/flaskfalcon
: examples/falcon
您可以在浏览器中打开上述示例并查看OpenAPI文档
swagger
: http://127.0.0.1:8000/openapi/swaggerredoc
: http://127.0.0.1:8000/openapi/redocscalar
: http://127.0.0.1:8000/openapi/scalar
用法
from dataclasses import dataclass
from typing import List
from defspec import OpenAPI
@dataclass
class User:
name: str
age: int
openapi = OpenAPI()
openapi.register_route("/", method="get", summary="Hello World")
openapi.register_route(
"/users", method="post", summary="Get all the user info", response_type=List[User]
)
# get the OpenAPI spec
print(openapi.to_dict())
# get the OpenAPI spec bytes
with open("openapi.json", "wb") as f:
f.write(openapi.to_json())
# serve as a HTTP server
openapi.serve_as_http_daemon(port=8000, run_in_background=True)
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
defspec-0.1.1.tar.gz (13.8 kB 查看哈希值)
构建发行版
defspec-0.1.1-py3-none-any.whl (10.5 kB 查看哈希值)
关闭
defspec-0.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 147cc6533f2839888d5c3012bf3b77487f6902be2e0abf0f2e51d1dd89d2e8e7 |
|
MD5 | 9e275bbddd7ca09cf03d463540b4e3a0 |
|
BLAKE2b-256 | 05716115e09276aa27039ac45c0996a53c650701f5a8b93e36c28ab0189cc119 |
关闭
defspec-0.1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 64fa521346058db577d4e82ff64e9d68bef04a0de236bc6eee342fc7ea8ae12b |
|
MD5 | 28e625448554861f49525d32888f1859 |
|
BLAKE2b-256 | f9497befd7a1a6c5bbf0ff4cd5286d63aeaf8addbd676386f5d70378e7bc8454 |