推一个类似 FastAPI 的 WSGI API 框架: HintAPI, 有以下特性
- 支持参数校验 (基于 Pydantic)
- 支持 OpenAPI 生成
- 支持 Gevent 等有栈协程框架
- 使用 RadixTree
- 使用同步编写你的代码, 降低心智负担
例子
from hintapi import HintAPI
from hintapi.openapi import OpenAPI
app = HintAPI()
app.router << ("/docs" // OpenAPI().routes)
@app.router.http.patch("/{user_id}/name")
def update_name(
user_id: UUID = Path(),
name: str = Body(),
):
...
-- 初衷 --
我朋友觉得 FastAPI 修 Bug 的速度太慢了, 开发也不热情, 所以他自己实现了一套类似的 ASGI (Async) API 框架, Index.py
过了一两年到现在, Index.py 已经很稳定了, 但是 Python 的 Async 生态还是半死不活的, 加上数据库速度还没同步 + Gevent 快 😅. 所以他开发了 Index.py 的同步版本 HintAPI.