API 參考

這裡包含 AutoCRUD 所有類和函數的詳細 API 文檔。

核心模組

SingleModelCRUD 類

單個模型的 CRUD 操作核心類,支援泛型和高級功能。

class autocrud.core.SingleModelCRUD(model, storage, resource_name, id_generator=None, metadata_config=None, default_values=None)[原始碼]

基礎類別:Generic[T]

自動 CRUD 系統核心類

__init__(model, storage, resource_name, id_generator=None, metadata_config=None, default_values=None)[原始碼]
create(data)[原始碼]

創建資源,回傳資源 ID

回傳型別:

str

get(resource_id)[原始碼]

獲取資源

回傳型別:

Optional[Dict[str, Any]]

update(resource_id, data)[原始碼]

更新資源,回傳是否更新成功

回傳型別:

bool

advanced_update(resource_id, update_data)[原始碼]

使用 Advanced Updater 進行細部更新

回傳型別:

Optional[Dict[str, Any]]

delete(resource_id)[原始碼]

刪除資源

回傳型別:

bool

exists(resource_id)[原始碼]

檢查資源是否存在

回傳型別:

bool

list_all(params=None)[原始碼]

列出所有資源(保持向後兼容)

回傳型別:

List[Dict[str, Any]]

list_with_params(params)[原始碼]

使用查詢參數列出資源

回傳型別:

ListResult

count()[原始碼]

取得資源總數量

回傳型別:

int

create_fastapi_app(route_config=None, **kwargs)

便利方法:直接從 CRUD 實例創建 FastAPI 應用

回傳型別:

FastAPI

create_router(route_config=None, prefix='', tags=None, dependencies=None, responses=None, **kwargs)

便利方法:直接從 CRUD 實例創建 APIRouter

回傳型別:

APIRouter

AutoCRUD 類(多模型)

支援多個模型的 AutoCRUD 系統,提供統一的管理介面。

class autocrud.multi_model.AutoCRUD(storage_factory=None, metadata_config=None, id_generator=None, use_plural=True, resource_name_style=ResourceNameStyle.SNAKE)[原始碼]

基礎類別:object

支持多個模型的 AutoCRUD 系統

__init__(storage_factory=None, metadata_config=None, id_generator=None, use_plural=True, resource_name_style=ResourceNameStyle.SNAKE)[原始碼]

初始化多模型 CRUD 系統

參數:
  • storage_factory (Optional[StorageFactory]) -- 存儲工廠,用於為每個資源創建獨立的存儲後端 如果為 None,將使用默認的內存存儲工廠

  • metadata_config (Optional[MetadataConfig]) -- 預設的 metadata 配置,在 register_model 時可以被覆蓋

  • id_generator (Optional[callable]) -- 預設的 ID 生成器,在 register_model 時可以被覆蓋

  • use_plural (bool) -- 預設是否使用複數形式,在 register_model 時可以被覆蓋

  • resource_name_style (ResourceNameStyle) -- 資源名稱命名風格 (snake/camel/dash)

register_model(model, resource_name=None, storage=None, id_generator=None, metadata_config=None, use_plural=None, resource_name_style=None, default_values=None)[原始碼]

註冊一個模型

參數:
  • model (Type[TypeVar(T)]) -- 要註冊的模型類

  • resource_name (Optional[str]) -- 資源名稱,如果為 None 則自動生成

  • storage (Optional[Storage]) -- 該資源專用的存儲後端,如果為 None 則使用 storage_factory 創建

  • id_generator (Optional[callable]) -- ID 生成器函數,如果為 None 則使用預設值

  • metadata_config (Optional[MetadataConfig]) -- metadata 配置,如果為 None 則使用預設值

  • use_plural (Optional[bool]) -- 是否使用複數形式,如果為 None 則使用預設值,僅在 resource_name 為 None 時生效

  • resource_name_style (Optional[ResourceNameStyle]) -- 資源名稱命名風格,如果為 None 則使用預設值,僅在 resource_name 為 None 時生效

  • default_values (Optional[Dict[str, Any]]) -- 預設值字典,對於 TypedDict 特別有用,可以讓必填欄位變成選填

回傳型別:

SingleModelCRUD[TypeVar(T)]

回傳:

創建的 SingleModelCRUD 實例

get_crud(resource_name)[原始碼]

獲取指定資源的 CRUD 實例

回傳型別:

SingleModelCRUD

get_model(resource_name)[原始碼]

獲取指定資源的模型類

回傳型別:

Type

get_model_by_class(model_class)[原始碼]

根據 model class 獲取模型類

參數:

model_class (Type) -- 要查找的模型類

回傳型別:

Type

回傳:

模型類(其實就是輸入的 model_class)

引發:
  • ValueError -- 如果模型未註冊

  • ValueError -- 如果模型註冊了多次(有多個不同的 resource_name)

get_crud_by_class(model_class)[原始碼]

根據 model class 獲取 CRUD 實例

參數:

model_class (Type) -- 要查找的模型類

回傳型別:

SingleModelCRUD

回傳:

對應的 SingleModelCRUD 實例

引發:
  • ValueError -- 如果模型未註冊

  • ValueError -- 如果模型註冊了多次(有多個不同的 resource_name)

get_storage_by_class(model_class)[原始碼]

根據 model class 獲取存儲後端

參數:

model_class (Type) -- 要查找的模型類

回傳型別:

Storage

回傳:

對應的 Storage 實例

引發:
  • ValueError -- 如果模型未註冊

  • ValueError -- 如果模型註冊了多次(有多個不同的 resource_name)

list_model_classes()[原始碼]

列出所有註冊的模型類

回傳型別:

List[Type]

get_resource_names_by_class(model_class)[原始碼]

獲取指定模型類對應的所有 resource names

參數:

model_class (Type) -- 要查找的模型類

回傳型別:

List[str]

回傳:

該模型類對應的所有 resource names

引發:

ValueError -- 如果模型未註冊

get_storage(resource_name)[原始碼]

獲取指定資源的存儲後端

回傳型別:

Storage

list_resources()[原始碼]

列出所有註冊的資源名稱

回傳型別:

List[str]

unregister_model(resource_name)[原始碼]

取消註冊一個模型

回傳型別:

bool

create_router(prefix='', route_config=None)[原始碼]

創建包含所有註冊模型路由的 APIRouter

參數:
  • prefix (str) -- 路由前綴

  • route_config (Optional[RouteConfig]) -- 路由配置,控制哪些路由要啟用

回傳型別:

APIRouter

回傳:

配置好的 APIRouter

create_fastapi_app(title='Multi-Model CRUD API', description='自動生成的多模型 CRUD API', version='1.0.0', prefix='/api/v1', route_config=None)[原始碼]

創建包含所有註冊模型路由的 FastAPI 應用

參數:
  • title (str) -- API 標題

  • description (str) -- API 描述

  • version (str) -- API 版本

  • prefix (str) -- 路由前綴

  • route_config (Optional[RouteConfig]) -- 路由配置,控制哪些路由要啟用

回傳型別:

FastAPI

回傳:

配置好的 FastAPI 應用

create(resource_name, data)[原始碼]

在指定資源上創建項目,返回創建的項目ID

回傳型別:

str

get(resource_name, resource_id)[原始碼]

從指定資源獲取項目

回傳型別:

Optional[Dict[str, Any]]

update(resource_name, resource_id, data)[原始碼]

更新指定資源的項目,返回是否成功

回傳型別:

bool

advanced_update(resource_name, resource_id, update_data)[原始碼]

使用 Advanced Updater 更新指定資源的項目

回傳型別:

Optional[Dict[str, Any]]

delete(resource_name, resource_id)[原始碼]

從指定資源刪除項目

回傳型別:

bool

list_all(resource_name, params=None)[原始碼]

列出指定資源的所有項目

回傳型別:

List[Dict[str, Any]]

list_with_params(resource_name, params)[原始碼]

使用查詢參數列出指定資源的項目

回傳型別:

ListResult

count(resource_name)[原始碼]

取得指定資源的總數量

回傳型別:

int

exists(resource_name, resource_id)[原始碼]

檢查指定資源的項目是否存在

回傳型別:

bool

ResourceNameStyle 枚舉

資源名稱命名風格枚舉。

class autocrud.multi_model.ResourceNameStyle(value)[原始碼]

基礎類別:Enum

資源名稱命名風格

SNAKE = 'snake'
CAMEL = 'camel'
DASH = 'dash'

儲存後端

Storage 抽象基類

class autocrud.storage.Storage(serializer=None)[原始碼]

基礎類別:ABC

存儲抽象基類

__init__(serializer=None)[原始碼]
abstractmethod get(key)[原始碼]

獲取數據

回傳型別:

Optional[Any]

abstractmethod set(key, value)[原始碼]

存儲數據

回傳型別:

None

abstractmethod delete(key)[原始碼]

刪除數據

回傳型別:

bool

abstractmethod exists(key)[原始碼]

檢查鍵是否存在

回傳型別:

bool

abstractmethod list_keys()[原始碼]

列出所有鍵

回傳型別:

List[str]

MemoryStorage

記憶體儲存後端,適用於開發和測試。

class autocrud.storage.MemoryStorage(serializer=None)[原始碼]

基礎類別:Storage

純內存存儲實現(重啟後數據消失,適合測試和演示)

__init__(serializer=None)[原始碼]
get(key)[原始碼]

獲取數據

回傳型別:

Optional[Any]

set(key, value)[原始碼]

存儲數據

回傳型別:

None

delete(key)[原始碼]

刪除數據

回傳型別:

bool

exists(key)[原始碼]

檢查鍵是否存在

回傳型別:

bool

list_keys()[原始碼]

列出所有鍵

回傳型別:

List[str]

clear()[原始碼]

清空所有數據

回傳型別:

None

size()[原始碼]

獲取存儲的條目數量

回傳型別:

int

DiskStorage

硬碟儲存後端,支援持久化和多種序列化格式。

class autocrud.storage.DiskStorage(base_dir, serializer=None)[原始碼]

基礎類別:Storage

硬碟檔案儲存實作(真正的持久化儲存)

__init__(base_dir, serializer=None)[原始碼]
get(key)[原始碼]

獲取數據

回傳型別:

Optional[Any]

set(key, value)[原始碼]

存儲數據

回傳型別:

None

delete(key)[原始碼]

刪除數據

回傳型別:

bool

exists(key)[原始碼]

檢查鍵是否存在

回傳型別:

bool

list_keys()[原始碼]

列出所有鍵

回傳型別:

List[str]

clear()[原始碼]

清空所有數據

回傳型別:

None

size()[原始碼]

獲取存儲的條目數量

回傳型別:

int

儲存工廠

StorageFactory

class autocrud.storage_factory.StorageFactory(storage_type=<class 'autocrud.storage.MemoryStorage'>, storage_config=None, custom_factory=None)[原始碼]

基礎類別:object

存儲工廠類,用於為不同資源創建獨立的存儲後端

__init__(storage_type=<class 'autocrud.storage.MemoryStorage'>, storage_config=None, custom_factory=None)[原始碼]

初始化存儲工廠

參數:
  • storage_type (Type[Storage]) -- 默認的存儲類型

  • storage_config (Optional[Dict[str, Any]]) -- 存儲配置參數

  • custom_factory (Optional[Callable[[str], Storage]]) -- 自定義的存儲創建函數,接收 resource_name 參數

create_storage(resource_name)[原始碼]

為指定資源創建獨立的存儲後端

參數:

resource_name (str) -- 資源名稱

回傳型別:

Storage

回傳:

新創建的存儲實例

DefaultStorageFactory

class autocrud.storage_factory.DefaultStorageFactory[原始碼]

基礎類別:object

默認存儲工廠的便利類

static memory()[原始碼]

創建內存存儲工廠

回傳型別:

StorageFactory

static disk(base_dir='data')[原始碼]

創建磁盤存儲工廠

參數:

base_dir (str) -- 數據文件的基礎目錄

回傳型別:

StorageFactory

回傳:

配置好的磁盤存儲工廠

static custom(factory_func)[原始碼]

創建自定義存儲工廠

參數:

factory_func (Callable[[str], Storage]) -- 自定義的存儲創建函數

回傳型別:

StorageFactory

回傳:

配置好的自定義存儲工廠

序列化器

SerializerFactory

序列化工廠,支援多種序列化格式。

class autocrud.serializer.SerializerFactory[原始碼]

基礎類別:object

序列化器工廠

classmethod create(serializer_type)[原始碼]

創建序列化器實例

回傳型別:

Serializer

classmethod register(name, serializer_class)[原始碼]

註冊新的序列化器

classmethod available_types()[原始碼]

獲取可用的序列化器類型

回傳型別:

list

FastAPI 產生器

FastAPIGenerator

FastAPI 應用程式生成器。

class autocrud.fastapi_generator.FastAPIGenerator(crud, route_config=None)[原始碼]

基礎類別:object

FastAPI 路由生成器

__init__(crud, route_config=None)[原始碼]
property request_model: Type[BaseModel]

生成請求模型(用於 POST/PUT)

property response_model: Type[BaseModel]

生成響應模型(用於 GET)

create_router(prefix='', tags=None, dependencies=None, responses=None, route_config=None, **kwargs)[原始碼]

創建並返回包含 CRUD 路由的 APIRouter

參數:
  • prefix (str) -- 路由前綴

  • tags (Optional[list]) -- OpenAPI 標籤

  • dependencies (Optional[list]) -- 依賴注入列表

  • responses (Optional[dict]) -- 響應模型定義

  • route_config (Optional[RouteConfig]) -- 路由配置,控制哪些路由要啟用

  • **kwargs -- 其他 APIRouter 參數

回傳型別:

APIRouter

create_routes(app, prefix='')[原始碼]

在 FastAPI 應用中創建 CRUD 路由(向後兼容方法)

回傳型別:

FastAPI

create_fastapi_app(title=None, description=None, version='1.0.0', prefix='/api/v1', route_config=None)[原始碼]

創建完整的 FastAPI 應用

回傳型別:

FastAPI

模型轉換器

ModelConverter

模型轉換器,支援多種資料模型格式。

class autocrud.converter.ModelConverter[原始碼]

基礎類別:object

統一的數據模型轉換器

static detect_model_type(model_class)[原始碼]

檢測模型類型

回傳型別:

str

static extract_fields(model_class)[原始碼]

提取模型的欄位和類型

回傳型別:

Dict[str, Type]

static to_dict(instance)[原始碼]

將模型實例轉換為字典

回傳型別:

Dict[str, Any]

static from_dict(model_class, data)[原始碼]

從字典創建模型實例

回傳型別:

Any

元資料配置

MetadataConfig

元資料配置類,用於設定時間戳和用戶追蹤。

class autocrud.metadata.MetadataConfig(id_field='id', enable_timestamps=False, created_time_field='created_time', updated_time_field='updated_time', enable_user_tracking=False, created_by_field='created_by', updated_by_field='updated_by', get_current_time=None, get_current_user=None)[原始碼]

基礎類別:object

Configuration for metadata fields in CRUD operations

id_field: str = 'id'
enable_timestamps: bool = False
created_time_field: Optional[str] = 'created_time'
updated_time_field: Optional[str] = 'updated_time'
enable_user_tracking: bool = False
created_by_field: Optional[str] = 'created_by'
updated_by_field: Optional[str] = 'updated_by'
get_current_time: Optional[Callable[[], Any]] = None
get_current_user: Optional[Callable[[], Any]] = None
classmethod with_timestamps(created_time_field='created_time', updated_time_field='updated_time', get_current_time=None, **kwargs)[原始碼]

Create config with timestamp tracking enabled

回傳型別:

MetadataConfig

classmethod with_user_tracking(created_by_field='created_by', updated_by_field='updated_by', get_current_user=None, **kwargs)[原始碼]

Create config with user tracking enabled

回傳型別:

MetadataConfig

classmethod with_full_tracking(created_time_field='created_time', updated_time_field='updated_time', created_by_field='created_by', updated_by_field='updated_by', get_current_time=None, get_current_user=None, **kwargs)[原始碼]

Create config with both timestamp and user tracking enabled

回傳型別:

MetadataConfig

get_metadata_fields()[原始碼]

Get all metadata field names and their enabled status

回傳型別:

Dict[str, bool]

get_create_excluded_fields()[原始碼]

Get fields that should be excluded from create request body

回傳型別:

set[str]

get_update_excluded_fields()[原始碼]

Get fields that should be excluded from update request body

回傳型別:

set[str]

apply_create_metadata(data)[原始碼]

Apply metadata to create data

回傳型別:

Dict[str, Any]

apply_update_metadata(data)[原始碼]

Apply metadata to update data

回傳型別:

Dict[str, Any]

__init__(id_field='id', enable_timestamps=False, created_time_field='created_time', updated_time_field='updated_time', enable_user_tracking=False, created_by_field='created_by', updated_by_field='updated_by', get_current_time=None, get_current_user=None)

查詢參數和結果

ListQueryParams

列表查詢參數。

class autocrud.list_params.ListQueryParams(page=1, page_size=20, created_by_filter=None, updated_by_filter=None, created_time_range=None, updated_time_range=None, sort_by=None, sort_order=SortOrder.DESC)[原始碼]

基礎類別:object

列表查詢參數

page: int = 1
page_size: int = 20
created_by_filter: Optional[List[str]] = None
updated_by_filter: Optional[List[str]] = None
created_time_range: Optional[DateTimeRange] = None
updated_time_range: Optional[DateTimeRange] = None
sort_by: Optional[str] = None
sort_order: SortOrder = 'desc'
__init__(page=1, page_size=20, created_by_filter=None, updated_by_filter=None, created_time_range=None, updated_time_range=None, sort_by=None, sort_order=SortOrder.DESC)

ListResult

列表查詢結果。

class autocrud.list_params.ListResult(items, total, page, page_size, total_pages, has_next, has_prev)[原始碼]

基礎類別:object

列表查詢結果

items: List[Dict[str, Any]]
total: int
page: int
page_size: int
total_pages: int
has_next: bool
has_prev: bool
classmethod create(items, total, params)[原始碼]

創建列表結果

回傳型別:

ListResult

__init__(items, total, page, page_size, total_pages, has_next, has_prev)

SortOrder

排序順序枚舉。

class autocrud.list_params.SortOrder(value)[原始碼]

基礎類別:Enum

排序順序

ASC = 'asc'
DESC = 'desc'

DateTimeRange

日期時間範圍查詢。

class autocrud.list_params.DateTimeRange(start=None, end=None)[原始碼]

基礎類別:object

日期時間範圍

start: Optional[datetime] = None
end: Optional[datetime] = None
contains(value)[原始碼]

檢查日期是否在範圍內

回傳型別:

bool

__init__(start=None, end=None)

插件系統

BaseRoutePlugin

路由插件基類。

class autocrud.plugin_system.BaseRoutePlugin(name, version='1.0.0')[原始碼]

基礎類別:ABC

Base class for route plugins. 提供一些常用的實現。

__init__(name, version='1.0.0')[原始碼]
property name: str
property version: str
abstractmethod get_routes(crud)[原始碼]

子類必須實現這個方法

回傳型別:

List[PluginRouteConfig]

is_compatible(crud)[原始碼]

默認實現:所有 CRUD 都兼容

回傳型別:

bool

PluginManager

插件管理器。

class autocrud.plugin_system.PluginManager[原始碼]

基礎類別:object

Plugin manager for managing and executing route plugins.

__init__()[原始碼]
register_plugin(plugin, is_default=False)[原始碼]

註冊一個 plugin

參數:
  • plugin (RoutePlugin) -- 要註冊的 plugin

  • is_default (bool) -- 是否為系統預設的 plugin

unregister_plugin(plugin_name)[原始碼]

移除一個 plugin

參數:

plugin_name (str) -- plugin 名稱

get_all_plugins()[原始碼]

獲取所有已註冊的 plugins(預設 + 用戶定義)

回傳型別:

List[RoutePlugin]

get_user_plugins()[原始碼]

只獲取用戶定義的 plugins

回傳型別:

List[RoutePlugin]

get_default_plugins()[原始碼]

只獲取系統預設的 plugins

回傳型別:

List[RoutePlugin]

get_routes_for_crud(crud)[原始碼]

獲取適用於指定 CRUD 的所有路由配置

參數:

crud (SingleModelCRUD) -- SingleModelCRUD 實例

回傳:

按優先級排序的路由配置列表

回傳型別:

List[PluginRouteConfig]

clear_user_plugins()[原始碼]

清除所有用戶定義的 plugins

PluginRouteConfig

插件路由配置。

class autocrud.plugin_system.PluginRouteConfig(name, path, method, handler, options, response_model=None, status_code=None, summary=None, description=None, tags=None, dependencies=None, responses=None, priority=100)[原始碼]

基礎類別:object

Configuration for a plugin route

name: str
path: str
method: RouteMethod
handler: Callable
options: RouteOptions
response_model: Optional[Any] = None
status_code: Optional[int] = None
summary: Optional[str] = None
description: Optional[str] = None
tags: Optional[List[str]] = None
dependencies: Optional[List[Any]] = None
responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None
priority: int = 100
__init__(name, path, method, handler, options, response_model=None, status_code=None, summary=None, description=None, tags=None, dependencies=None, responses=None, priority=100)

RouteMethod

HTTP 方法枚舉。

class autocrud.plugin_system.RouteMethod(value)[原始碼]

基礎類別:Enum

HTTP methods supported by routes

GET = 'GET'
POST = 'POST'
PUT = 'PUT'
DELETE = 'DELETE'
PATCH = 'PATCH'
HEAD = 'HEAD'
OPTIONS = 'OPTIONS'

路由配置

RouteConfig

路由配置類。

class autocrud.route_config.RouteConfig(create=True, get=True, update=True, delete=True, list=True, count=True)[原始碼]

基礎類別:object

Configuration for CRUD route generation

create: Union[bool, RouteOptions] = True
get: Union[bool, RouteOptions] = True
update: Union[bool, RouteOptions] = True
delete: Union[bool, RouteOptions] = True
list: Union[bool, RouteOptions] = True
count: Union[bool, RouteOptions] = True
get_route_options(route_name)[原始碼]

Get RouteOptions for a specific route

回傳型別:

RouteOptions

is_route_enabled(route_name)[原始碼]

Check if a route is enabled

回傳型別:

bool

classmethod all_enabled()[原始碼]

Create config with all routes enabled

回傳型別:

RouteConfig

classmethod all_disabled()[原始碼]

Create config with all routes disabled

回傳型別:

RouteConfig

classmethod only_read()[原始碼]

Create config with only read operations enabled

回傳型別:

RouteConfig

classmethod read_only()[原始碼]

Create config with only read operations enabled

回傳型別:

RouteConfig

classmethod write_only()[原始碼]

Create config with only write operations enabled

回傳型別:

RouteConfig

classmethod basic_crud()[原始碼]

Create config with basic CRUD operations only (no count)

回傳型別:

RouteConfig

classmethod no_list()[原始碼]

Create config without list operation

回傳型別:

RouteConfig

classmethod no_count()[原始碼]

Create config without count operation

回傳型別:

RouteConfig

classmethod with_background_tasks(create_bg_func=None, update_bg_func=None, delete_bg_func=None, **kwargs)[原始碼]

Create config with background tasks for specified operations

回傳型別:

RouteConfig

to_dict()[原始碼]

Convert to dictionary - with backward compatibility option

回傳型別:

Dict[str, Union[bool, Dict[str, Any]]]

classmethod from_dict(data)[原始碼]

Create from dictionary (supports both bool and dict values)

回傳型別:

RouteConfig

__init__(create=True, get=True, update=True, delete=True, list=True, count=True)

RouteOptions

路由選項類。

class autocrud.route_config.RouteOptions(enabled=True, background_task=BackgroundTaskMode.DISABLED, background_task_func=None, background_task_condition=None, custom_status_code=None, custom_dependencies=None)[原始碼]

基礎類別:object

Options for individual route configuration

enabled: bool = True
background_task: BackgroundTaskMode = 'disabled'
background_task_func: Optional[Callable] = None
background_task_condition: Optional[Callable] = None
custom_status_code: Optional[int] = None
custom_dependencies: Optional[list] = None
classmethod enabled_route()[原始碼]

Create a simple enabled route

回傳型別:

RouteOptions

classmethod disabled_route()[原始碼]

Create a disabled route

回傳型別:

RouteOptions

classmethod background_route(func, mode=BackgroundTaskMode.ENABLED, condition=None)[原始碼]

Create a route with background task

回傳型別:

RouteOptions

__init__(enabled=True, background_task=BackgroundTaskMode.DISABLED, background_task_func=None, background_task_condition=None, custom_status_code=None, custom_dependencies=None)

高級更新系統

AdvancedUpdater

高級更新器,支援原子操作。

class autocrud.updater.AdvancedUpdater(operations)[原始碼]

基礎類別:object

Advanced updater for fine-grained attribute control

__init__(operations)[原始碼]
apply_to(current_data)[原始碼]

Apply update operations to current data

回傳型別:

Dict[str, Any]

classmethod from_dict(update_data)[原始碼]

Create updater from dictionary format

回傳型別:

AdvancedUpdater

UpdateOperation

更新操作基類。

class autocrud.updater.UpdateOperation(action, value=None)[原始碼]

基礎類別:object

Represents a single update operation

action: UpdateAction
value: Any = None
classmethod undefined()[原始碼]

Create an undefined operation (no change)

回傳型別:

UpdateOperation

classmethod set_value(value)[原始碼]

Set attribute to new value

回傳型別:

UpdateOperation

classmethod list_set(items)[原始碼]

Replace entire list

回傳型別:

UpdateOperation

classmethod list_add(items)[原始碼]

Add items to list

回傳型別:

UpdateOperation

classmethod list_remove(items)[原始碼]

Remove items from list

回傳型別:

UpdateOperation

classmethod dict_set(data)[原始碼]

Replace entire dict

回傳型別:

UpdateOperation

classmethod dict_update(data)[原始碼]

Add/update items in dict

回傳型別:

UpdateOperation

classmethod dict_remove(keys)[原始碼]

Remove items from dict by keys

回傳型別:

UpdateOperation

__init__(action, value=None)

UpdateAction

更新動作枚舉。

class autocrud.updater.UpdateAction(value)[原始碼]

基礎類別:Enum

Update action types

SET = 'set'
UNDEFINED = 'undefined'
LIST_SET = 'list_set'
LIST_ADD = 'list_add'
LIST_REMOVE = 'list_remove'
DICT_SET = 'dict_set'
DICT_UPDATE = 'dict_update'
DICT_REMOVE = 'dict_remove'

Schema 分析器

SchemaAnalyzer

模型 Schema 分析器。

class autocrud.schema_analyzer.SchemaAnalyzer(model, metadata_config=None, default_values=None)[原始碼]

基礎類別:object

Analyzes user-provided schemas and generates appropriate request/response models

__init__(model, metadata_config=None, default_values=None)[原始碼]
get_full_model()[原始碼]

Get the full user model (includes all fields)

回傳型別:

Type

get_create_model()[原始碼]

Generate Pydantic model for create requests

回傳型別:

Type[BaseModel]

get_update_model()[原始碼]

Generate Pydantic model for update requests

回傳型別:

Type[BaseModel]

get_response_model()[原始碼]

Generate Pydantic model for responses (same as full model)

回傳型別:

Type[BaseModel]

prepare_create_data(data)[原始碼]

Prepare data for creation by applying metadata

回傳型別:

Dict[str, Any]

prepare_update_data(data)[原始碼]

Prepare data for update by applying metadata

回傳型別:

Dict[str, Any]

get_id_field_name()[原始碼]

Get the name of the ID field

回傳型別:

str

extract_id_from_data(data)[原始碼]

Extract ID value from data

回傳型別:

Any

get_metadata_fields()[原始碼]

Get all metadata fields

回傳型別:

Dict[str, bool]

預設插件

DEFAULT_PLUGINS

預設插件列表,包含標準的 CRUD 操作插件。

autocrud.default_plugins.DEFAULT_PLUGINS = [<autocrud.default_plugins.CreateRoutePlugin object>, <autocrud.default_plugins.GetRoutePlugin object>, <autocrud.default_plugins.UpdateRoutePlugin object>, <autocrud.default_plugins.DeleteRoutePlugin object>, <autocrud.default_plugins.CountRoutePlugin object>, <autocrud.default_plugins.ListRoutePlugin object>]

Built-in mutable sequence.

If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.

插件實例

autocrud.default_plugins.default_create_plugin = <autocrud.default_plugins.CreateRoutePlugin object>

Plugin for CREATE route (POST /{resource})

autocrud.default_plugins.default_get_plugin = <autocrud.default_plugins.GetRoutePlugin object>

Plugin for GET route (GET /{resource}/{id})

autocrud.default_plugins.default_update_plugin = <autocrud.default_plugins.UpdateRoutePlugin object>

Plugin for UPDATE route (PUT /{resource}/{id})

autocrud.default_plugins.default_delete_plugin = <autocrud.default_plugins.DeleteRoutePlugin object>

Plugin for DELETE route (DELETE /{resource}/{id})

autocrud.default_plugins.default_count_plugin = <autocrud.default_plugins.CountRoutePlugin object>

Plugin for COUNT route (GET /{resource}/count)

autocrud.default_plugins.default_list_plugin = <autocrud.default_plugins.ListRoutePlugin object>

Plugin for LIST route (GET /{resource})

更新操作函數

值設定操作

autocrud.updater.set_value(value)[原始碼]

Create set value operation

回傳型別:

Dict[str, Any]

autocrud.updater.undefined()[原始碼]

Create undefined operation marker

回傳型別:

Dict[str, str]

列表操作

autocrud.updater.list_set(items)[原始碼]

Create list set operation

回傳型別:

Dict[str, Any]

autocrud.updater.list_add(items)[原始碼]

Create list add operation

回傳型別:

Dict[str, Any]

autocrud.updater.list_remove(items)[原始碼]

Create list remove operation

回傳型別:

Dict[str, Any]

字典操作

autocrud.updater.dict_set(data)[原始碼]

Create dict set operation

回傳型別:

Dict[str, Any]

autocrud.updater.dict_update(data)[原始碼]

Create dict update operation

回傳型別:

Dict[str, Any]

autocrud.updater.dict_remove(keys)[原始碼]

Create dict remove operation

回傳型別:

Dict[str, Any]