fastapi-skeleton
fastapi-skeleton copied to clipboard
fastapi skeleton. framework integration orm jwt-auth loguru dotenv APScheduler...
路由定义问题
尊敬的作者,您好: 非常感谢您能分享与FastAPI相关的业务框架。这里我存在一个疑问点:由于您使用了peewee作为ORM,但该ORM并不是异步ORM。在定义路由时,您采用了异步定义路由函数: ```python @router.post("/token", response_model=Token, dependencies=[Depends(get_db)]) async def token(request_data: OAuth2PasswordRequest): """ 用户名+密码登录 """ grant = PasswordGrant(request_data) return grant.respond() ``` 根据FastAPI内部特性,同步函数将采用线程池执行,异步函数将由事件循环负责执行。 因此我的疑问点是`/token`这个路由能并发吗?通过peewee执行操作时,会阻塞整个程序的运行吧? 针对内部存在同步阻塞IO的路由应该定义为同步路由。
类似于`https://go-kratos.dev/docs/component/api` 这种,通过proto文件定义接口,直接转换为py代码,不同语言的多个服务之前需要相互调用的时候,如果都能依赖proto文件,那么能省很多事