FastAPIView Class View
Project description
FastGenerateApi
版本说明
最新版本:v1.1.7 建议python版本:3.9+ 推荐fastapi版本:0.103.2 推荐pydantic版本:2.11.5
稳定版本:v0.0.21 建议python版本:3.9+ 推荐fastapi版本:0.97.0
FastGenerateApi 使用说明
FastGenerateApi(<= 0.0.28) == FastApi 0.97.0
软件架构说明
封装了 快速生成API,包括(增,删,改,查,递归查询,递归删除,关联修改,关联查询)
封装了 新增缓存配置,默认不使用缓存;新增树状查询方案,可配置选择
封装了 Websocket API和分组消息发送
封装了 路由接口路径的灵活配置,返回值字段的灵活配置,分页参数的灵活配置,等其他项
封装了 增,改 对唯一字段的校验,非空字段的校验
封装了 删 对唯一字段追加时间戳格式修改
封装了 查 灵活的筛选,以及swagger文档的自动生成
封装了 通过数据库模型,自动生成schemas,并swagger附带文档
封装了 类方法的实现,增加了相关的钩子函数
封装了 通用性接口,例如excel的导入导出,pdf文件生成,模型数据跨表取值
使用教程
- 简单使用
- 增删改查进一步优化使用
- 查询筛选文档注意项(本地FastAPI源码修改,上线部署不需要修改)
- 其他接口书写方式
- websocket 使用
- 配置参数的使用
使用说明
1. 简单使用
数据库模型以 附带的example为例,代码如下
- 启动后自动生成 增,删,改,查 接口
app = FastAPI()
class StaffView(APIView):
model_class = StaffInfo
app.include_router("v1", StaffView())
uvicorn.run(app)
注意点:
- 路径自动添加数据库模型转换的字段 "/staff-info"
- 自动添加swagger对应的标签,内容为数据库模型的描述
- 自动通过数据库模型生成对应的所有的schemas
2. 增删改查进一步优化使用
根据增,删,改,查类,对应成员的填写 数据库模型 class PydanticMeta, 对schemas生成空值:
- include, exclude
- include: 为兼容手写schemas,推荐只限制数据库模型字段
- get_one_include, get_one_exclude
- 与include同时生效,无include自动包含数据库模型搜友字段
- 可添加跨表字段,自动生成校验和文档
- 其他字段: ("test", Optioanl[str], FieldInfo(..., description="文档描述"))
- get_all_include, get_all_exclude
- create_include, create_exclude
- update_include, update_exclude
指定模型
from core.crud.api_view import APIView
class XxxView(APIView):
model_class = XxxModel
继承 APIView 使用,关闭其中部分路由示例
from core.crud.api_view import APIView
class XxxView(APIView):
create_route = False
get_one_route = False
update_route = False
delete_route = False
查询/创建/修改字段限制及校验示例
- 如果有唯一字段或者联合唯一字段自动校验是否为唯一值
from core.crud.api_view import APIView
class XxxView(APIView):
list_schema = HeathInfoList
create_schema = HeathInfoCreate
update_schema = HeathInfoCreate
筛选::默认双下划线(__)自动转为单划线(_),可配置参数修改
- search_fields 搜索字段,可多个
- filter_fields 筛选字段,第一个必须双划线的联表查询字段,后续吴排序要求,可以选择:类型,重命名等
- prefetch_related_fields 跨表导出字段
- order_by_fields 排序字段,可多个
自定义接口
class XxxView(APIView):
def view_路由(self):
"""
文档注释
"""
return xxx
3. 查询筛选文档注意项
- 谨慎引入:如果Fastapi版本不一致可能错误
- 在实例化Fastapi页面引入即可
from fastapi_utils.all import *
# 相当于
# from fastapi_utils.param_utils import * # GET查询使用Depends注入description文档
# from fastapi_utils.response_utils import * # 把数据储存到request.scope,方便中间键读取
4、其他接口书写方式
方法使用规则
- view 标识符号
- get/post/put/patch/delete 方法
- 后续字段: 路由路径
- pk 路径参数,可省略
- 多段路径: view_get_test__test
- url .../test/test
- 其他使用与原FastAPI一致
class TestSchema(BaseModel):
pk: str
test: str
class TestView(BaseView):
def view_get_test_pk(self, pk: str, name: str) -> TestSchema:
return self.success(data=TestSchema(pk=pk, test=name))
# url = .../test/{pk}
5、websocket 使用
详情请查看example文件
6、配置参数的使用
第一步:配置参数的查看
- 如果生成.env.example全局Settings中继承SettingsModel
from fastgenerateapi import SettingsModel
class Settings(SettingsModel):
"""
Global settings
"""
...
第二步:配置参数修改
- 在.env中修改参数值,会自动生效
[AppSettings]
# 当前页字段
APP_CURRENT_PAGE_FIELD=page
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fastgenerateapi-1.1.12.tar.gz
(84.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastgenerateapi-1.1.12.tar.gz.
File metadata
- Download URL: fastgenerateapi-1.1.12.tar.gz
- Upload date:
- Size: 84.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bde1b1a1f3655300265d9af9ea2b400309333ea875e19792fe6ed979a73ea46b
|
|
| MD5 |
59356f0eb261fa3fb13409b4885c0717
|
|
| BLAKE2b-256 |
dcacd9e81c3fb0edc04483206223dc4b4f17beaccae3cbe12debf91097fa7858
|
File details
Details for the file fastgenerateapi-1.1.12-py2.py3-none-any.whl.
File metadata
- Download URL: fastgenerateapi-1.1.12-py2.py3-none-any.whl
- Upload date:
- Size: 126.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f751fa8c250f567602ad4aed23e016edb977570f639c39a129a609f99bf4fad7
|
|
| MD5 |
281c47a07cb4b5cc69f62d3a146782f2
|
|
| BLAKE2b-256 |
1abe62322e254e6b72f443352e4ae6f27f61fd6d76e502c252ad01001453fae1
|