
推一个类似 FastAPI 的 WSGI API 框架: HintAPI, 有以下特性
例子
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.
1 szxczyc 2021-11-09 03:56:12 +08:00 via iPhone 速度和 gin 比怎么样 |
2 lengyue233 OP @szxczyc Python 下的 API 框架, 应该没有和 Go 掰手腕的可能... |
3 ericls 2021-11-09 06:15:32 +08:00 via iPhone @szxczyc Python web 速度一般取决于服务器 而不是框架 框架都是对 wsgi 和 asgi 的包装 |
4 abersheeran 2021-11-09 09:25:07 +08:00 @szxczyc 实际业务里比不过 Gin ,但是应该可以比所有 ASGI 实现都快。毕竟 Gevent 等一众有栈协程的性能,远比现在半死不活的 asyncio 要好。举几个例子,aiomysql 是多线程改造的、motor 多线程改造的、aioredis 不支持集群实际用起来还得 redis 多线程改造。唯一好一点的就是 asyncpg ,但是不支持 DBAPI ,没有对应的 ORM 可用。 我现在是 ASGI 和 WSGI 混着用。普通业务用同步,生态齐全、性能不差。一些极端业务必须要用 asyncio 的,就上 ASGI 。 |
5 4BVL25L90W260T9U 2021-11-09 09:30:59 +08:00 牛逼啊,FastAPI 到现在都没有 API 文档,太坑了 |
6 Fizzyi 2021-11-09 10:04:56 +08:00 惊现冷月大佬 |