contract.py
@client.get("/users/{user_id}") async def get_user( user_id: int = Path(), ) -> User: pass
DECLAREBUILDRUNTIMETYPE
01 / ONE CONTRACT
写下接口的样子。
剩下的交给 Runtime。
声明、传输与转换彼此解耦。你的业务函数只保留真正重要的部分:输入与输出。
01
声明即实现
Path、Query、Header、Body、Form 与 File,保持 FastAPI 风格的直觉。
02
类型贯穿全程
Pydantic TypeAdapter 将响应可靠地转换为模型、列表或任意声明类型。
03
传输自由切换
标准库开箱即用,也可无缝接入 httpx、aiohttp 或自己的 Runtime。
READY WHEN YOU ARE