# fastapidemo **Repository Path**: bcyuan/fastapidemo ## Basic Information - **Project Name**: fastapidemo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-01 - **Last Updated**: 2025-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 项目结构 app/ ├── main.py # 应用入口 ├── routers/ # 路由模块 │ └── users.py ├── models/ # 数据库模型 │ └── userModels.py ├── schemas/ # Pydantic 数据验证模型 │ └── userSchemas.py ├── services/ # 业务逻辑层 │ └── userService.py ├── dependencies/ # 依赖项(如数据库连接) │ └── database.py ├── database/ # 数据库配置 │ └── database.py ├── config/ # 配置文件 │ └── settings.py └── utils/ # 工具类 └── security.py ### 环境及地址 ### 项目规范 > 目的是保持代码风格统一,避免百人百样,减少依赖,提高扩展速度、前后端对接速度。 1. 整体架构 - 依据 `项目结构`中的形式,特殊而有必要的再扩展。 - 接口规范:参考 demoRouter > demoService(业务逻辑写在service层) - 配置文件使用 Settings.py (具有类型检查,提供默认值,跨平台加载env文件,一次性加载特点) - service层:通过依赖注入解耦,使本服务只关注自己的依赖,而不关注依赖的依赖。 - db操作:优先考虑使用orm 2. 依赖包 - 谨慎的添加依赖包 - 新加包需要考虑 - 来源(避免使用非官方包,以及license不明确包;考虑使用Apache License 2.0、MIT等开源许可证的包) - 版本(避免使用废弃包) - 避免使用多重依赖的包 - 依据功能性考虑合适的包,而非大而全的包 - pip freeze > requirements.txt 禁止加入测试包,业务未使用包 3. 数据库 - 表/字段命名示例: <业务>_<用途>.<属性>:system_user.create_time,表名不使用复数 - 不推荐使用:外键,存储过程,触发器 - 字段类型尽可能合适,满足场景条件下大小尽可能小,如name 字段长度为100,而非text - RDS 必须有主键 - 基础字段: - 尽可能带的字段:id、create_time、update_time - 主/重要数据需要使用逻辑删除:is_deleted - 其他字段:creator_id、updater_id - 表示是否字段的:使用 is_xxx 的命名方式 - 小数类型为 decimal,禁止使用 float 和 double 4. 接口规范 - 接口返回示例: ```json { "code": 200, "msg": "success", "data": {} } ``` - http method:根据实际业务场景选择,如:GET、POST、PUT、DELETE; - 注意:查询数据使用GET,较少场景考虑POST 4. 其他功能点 - 必须进行双测试:本地自测 + 上线后自测 - 列表:分页(数据会增长,必须分页)、搜索、排序(默认按更新时间倒序) 5. 统一常用词:避免不必要的错误,如:keyword,keywords - keyword