Skip to content

API 方法参考

VEF Framework 预置 API 的完整方法参考。

查询 API

FindOneApi

查询单条记录。

go
apis.NewFindOneApi[M, S]() FindOneApi[M, S]
方法说明
WithPermission(token string)设置权限令牌
WithDataScope(scope DataScope)设置数据范围
WithSelect(columns ...string)指定返回字段
WithCondition(fn func(*Query[M]) *Query[M])添加查询条件
WithPreload(relations ...string)预加载关联
WithProcessor(fn func(M) M)结果处理器

FindAllApi

查询所有记录(无分页)。

go
apis.NewFindAllApi[M, S]() FindAllApi[M, S]
方法说明
WithPermission(token string)设置权限令牌
WithDataScope(scope DataScope)设置数据范围
WithSelect(columns ...string)指定返回字段
WithCondition(fn func(*Query[M]) *Query[M])添加查询条件
WithOrderBy(order string)设置排序
WithPreload(relations ...string)预加载关联
WithProcessor(fn func([]M) []M)结果处理器

FindPageApi

分页查询。

go
apis.NewFindPageApi[M, S]() FindPageApi[M, S]
方法说明
WithPermission(token string)设置权限令牌
WithDataScope(scope DataScope)设置数据范围
WithSelect(columns ...string)指定返回字段
WithCondition(fn func(*Query[M]) *Query[M])添加查询条件
WithOrderBy(order string)设置排序
WithPreload(relations ...string)预加载关联
WithProcessor(fn func([]M) []M)结果处理器
WithDefaultPageSize(size int)默认分页大小
WithMaxPageSize(size int)最大分页大小
WithQueryPart(part *QueryPart[M])设置查询配置
WithDynamicCondition(fn DynamicConditionFunc)动态条件
WithDynamicSelect(fn DynamicSelectFunc)动态字段选择

FindTreeApi

树形结构查询。

go
apis.NewFindTreeApi[M, S](builder TreeBuilder[M]) FindTreeApi[M, S]
方法说明
WithIdColumn(column string)设置 ID 列名
WithParentIdColumn(column string)设置父 ID 列名
WithRootCondition(fn func(*Query[M]) *Query[M])根节点条件
WithLazyLoad(lazy bool)启用懒加载

FindOptionsApi

选项列表查询。

go
apis.NewFindOptionsApi[M, S]() FindOptionsApi[M, S]
方法说明
WithDefaultColumnMapping(mapping *DataOptionColumnMapping)设置列映射
WithExtraColumns(columns ...string)额外返回列

写入 API

CreateApi

创建单条记录。

go
apis.NewCreateApi[M, P]() CreateApi[M, P]
方法说明
WithPermission(token string)设置权限令牌
WithValidator(fn ValidatorFunc[P])自定义验证器
WithTransformer(fn TransformerFunc[M, P])数据转换器
WithHook(hookType, fn HookFunc)添加钩子
WithOmitColumns(columns ...string)忽略的列
WithSelectColumns(columns ...string)只保存的列

UpdateApi

更新单条记录。

go
apis.NewUpdateApi[M, P]() UpdateApi[M, P]
方法说明
WithPermission(token string)设置权限令牌
WithDataScope(scope DataScope)设置数据范围
WithValidator(fn ValidatorFunc[P])自定义验证器
WithTransformer(fn TransformerFunc[M, P])数据转换器
WithHook(hookType, fn HookFunc)添加钩子
WithOmitColumns(columns ...string)忽略的列
WithSelectColumns(columns ...string)只更新的列

DeleteApi

删除单条记录。

go
apis.NewDeleteApi[M]() DeleteApi[M]
方法说明
WithPermission(token string)设置权限令牌
WithDataScope(scope DataScope)设置数据范围
WithHook(hookType, fn HookFunc)添加钩子
WithSoftDelete(soft bool)软删除

批量 API

CreateManyApi

批量创建。

go
apis.NewCreateManyApi[M, P]() CreateManyApi[M, P]
方法说明
WithPermission(token string)设置权限令牌
WithBatchSize(size int)批量大小
WithValidator(fn ValidatorFunc[P])自定义验证器

UpdateManyApi

批量更新。

go
apis.NewUpdateManyApi[M, P]() UpdateManyApi[M, P]
方法说明
WithPermission(token string)设置权限令牌
WithDataScope(scope DataScope)设置数据范围

DeleteManyApi

批量删除。

go
apis.NewDeleteManyApi[M]() DeleteManyApi[M]
方法说明
WithPermission(token string)设置权限令牌
WithDataScope(scope DataScope)设置数据范围

导入导出 API

ImportApi

从 Excel/CSV 导入。

go
apis.NewImportApi[M, P]() ImportApi[M, P]
方法说明
WithPermission(token string)设置权限令牌
WithColumnMapping(mapping map[string]string)列映射
WithValidator(fn ValidatorFunc[P])自定义验证器
WithBatchSize(size int)批量大小

ExportApi

导出到 Excel/CSV。

go
apis.NewExportApi[M, S]() ExportApi[M, S]
方法说明
WithPermission(token string)设置权限令牌
WithDataScope(scope DataScope)设置数据范围
WithDefaultFormat(format string)默认格式
WithFilenameBuilder(fn FilenameBuilderFunc)文件名生成器
WithColumnMapping(mapping map[string]string)列映射
WithMaxRows(max int)最大行数

通用方法

所有 API 都支持以下方法:

方法说明
WithPermission(token string)设置权限令牌
WithSkipAuth(skip bool)跳过认证
WithHook(hookType, fn HookFunc)添加钩子

钩子类型

类型说明适用 API
BeforeCreate创建前CreateApi, CreateManyApi
AfterCreate创建后CreateApi, CreateManyApi
BeforeUpdate更新前UpdateApi, UpdateManyApi
AfterUpdate更新后UpdateApi, UpdateManyApi
BeforeDelete删除前DeleteApi, DeleteManyApi
AfterDelete删除后DeleteApi, DeleteManyApi
BeforeQuery查询前FindOneApi, FindAllApi, FindPageApi
AfterQuery查询后FindOneApi, FindAllApi, FindPageApi

基于 Apache License 2.0 许可发布