Skip to Content
文档开始OpenAPI 概览

通用模型接口

最新在线接口文档参考: https://api-cn.softa.io 

以下为模型级别通用接口。

POST copyList

POST /{modelName}/copyList

基于 ids 复制多条数据,并返回新数据的 ids。

请求参数

名称位置类型必选说明
modelNamepathstring是模型名
idsqueryarray[object]是要复制的数据 ids

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST copyListAndReturn

POST /{modelName}/copyListAndReturn

基于 ids 复制多条数据,并返回新增的数据列表。

请求参数

名称位置类型必选说明
modelNamepathstring是模型名
idsqueryarray[object]是要复制的数据 ids

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST copyOne

POST /{modelName}/copyOne

基于 id 复制一条记录,并返回新增记录的 id。

请求参数

名称位置类型必选说明
modelNamepathstring是none
idquerynumber是复制的数据源ID

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST copyOneAndReturn

POST /{modelName}/copyOneAndReturn

基于 id 复制一条记录,并返回新增记录的数据。

请求参数

名称位置类型必选说明
modelNamepathstring是模型名
idquerynumber是复制的数据源ID

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

GET copyWithoutCreate

GET /{modelName}/copyWithoutCreate

基于 id 复制一条记录,并返回可复制的字段值,但是并不自动插入数据库,而是由客户端调用 Create 方法入库。

请求参数

名称位置类型必选说明
modelNamepathstring是模型名
idquerynumber是复制的数据源ID

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

GET count

GET /{modelName}/count

根据指定的筛选条件、分组条件和排序条件,返回分组计数值。仅传递 filters 时,返回总计数值。

请求参数

名称位置类型必选说明
modelNamepathstring是none
filtersqueryarray否计数的数据筛选条件,参考中缀表达式用法,仅传递 filters 时,返回总计数值。
groupByqueryarray[string]否分组计数的字段,未指定则不分组,直接返回总数。
ordersqueryarray否分组结果排序字段.
effectiveDatequerystring(date)否时间轴模型的有效日期。

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST createList

POST /{modelName}/createList

批量创建并返回创建后的 id 列表。

Body 请求参数

[ { "property1": {}, "property2": {} } ]

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyarray[object]否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST createListAndReturn

POST /{modelName}/createListAndReturn

批量创建数据,并从数据库返回最新数据结果。

Body 请求参数

[ { "property1": {}, "property2": {} } ]

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyarray[object]否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST createOne

POST /{modelName}/createOne

创建单条数据并返回数据 ID。

Body 请求参数

{ "property1": {}, "property2": {} }

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyobject否none
» additionalPropertiesbodyobject否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST createOneAndReturn

POST /{modelName}/createOneAndReturn

创建单条数据,并从数据库返回最新数据。

Body 请求参数

{ "property1": {}, "property2": {} }

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyobject否none
» additionalPropertiesbodyobject否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST deleteList

POST /{modelName}/deleteList

根据 ids 参数批量删除数据。

请求参数

名称位置类型必选说明
modelNamepathstring是none
idsqueryarray[object]否要删除数据的 ids。

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST deleteOne

POST /{modelName}/deleteOne

根据 id 参数删除1条记录。时间轴模型,则会删除该 id 相关的所有切片记录。

请求参数

名称位置类型必选说明
modelNamepathstring是none
idquerynumber是要删除数据的 id。

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST deleteBySliceId

POST /{modelName}/deleteBySliceId

根据 sliceId 参数删除时间轴模型1条切片记录。

请求参数

名称位置类型必选说明
modelNamepathstring是none
sliceIdquerynumber是要删除时间轴切片数据的 sliceId。

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST addVersion

POST /{modelName}/addVersion

仅时间轴模型:给已有实体新增一个版本(切片)。请求体必须携带该实体的 id;effectiveStartDate 缺省为上下文生效日期。请求体中未提供的字段会自动从相邻切片复制前滚,因此推荐提交增量(id + effectiveStartDate + 变更字段)。相邻切片会自动拆分/修正。返回新版本的 sliceId(当生效开始日与既有切片相同时,就地修正该切片并返回其 sliceId)。

Body 请求参数

{ "id": 6, "effectiveStartDate": "2026-08-01", "name": "New Department Name" }

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyobject是携带已有实体 id 的版本数据(推荐增量形式)。

返回示例

200 Response

{ "code": 0, "data": 1899999999999999, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST addVersionAndFetch

POST /{modelName}/addVersionAndFetch

与 addVersion 相同,随后按 sliceId 跨时间轴取回完整版本行(新版本的生效日期未必是今天)。

Body 请求参数

{ "id": 6, "effectiveStartDate": "2026-08-01", "name": "New Department Name" }

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyobject是携带已有实体 id 的版本数据(推荐增量形式)。

返回示例

200 Response

{ "code": 0, "data": { "id": 6, "sliceId": 1899999999999999, "name": "New Department Name", "effectiveStartDate": "2026-08-01", "effectiveEndDate": "9999-12-31" }, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST setEndDate

POST /{modelName}/setEndDate

仅时间轴模型:设置实体最后一个切片的结束日。endDate 早于 9999-12-31 即终结时间轴(其后的 as-of 读取返回空);传 9999-12-31 即重开。不得早于尾切片的起始日——要终结到更早的日期,先删除尾部版本。终结之后起始日更晚的 addVersion 会以新段复活该实体,并留下空窗(gap)。

请求参数

名称位置类型必选说明
modelNamepathstring是none
idquerystring是时间轴实体的逻辑 id。
endDatequerystring(date)是最后一个切片的新结束日;9999-12-31 表示重开。

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

GET getUnmaskedField

GET /{modelName}/getUnmaskedField

获取指定字段的脱敏前数据,适用于原始字段是掩码脱敏字段。

请求参数

名称位置类型必选说明
modelNamepathstring是none
idquerynumber是要读取的数据 id。
fieldquerystring是要获取明文的字段名。
effectiveDatequerystring(date)否时间轴数据的有效日期。

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

GET getUnmaskedFields

GET /{modelName}/getUnmaskedFields

“获取多个字段的脱敏前数据,适用于原始字段是掩码脱敏字段。

请求参数

名称位置类型必选说明
modelNamepathstring是none
idquerynumber是要读取的数据 id。
fieldsqueryarray[string]是要获取明文的字段名列表。
effectiveDatequerystring(date)否时间轴数据的有效日期。

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

GET readList

GET /{modelName}/readList

根据 ids 参数读取多条数据列表。

请求参数

名称位置类型必选说明
modelNamepathstring是none
idsqueryarray[object]是要读取的数据列表的 ids。
fieldsqueryarray[string]是要读取的字段名列表组成的字符串,为空则全部可见字段。
effectiveDatequerystring(date)否时间轴数据的有效日期。

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

GET readOne

GET /{modelName}/readOne

根据 id 读取1条数据。

请求参数

名称位置类型必选说明
modelNamepathstring是none
idquerynumber是要读取的数据的 id。
fieldsqueryarray[string]是要读取的字段名列表组成的字符串,为空则全部可见字段。
effectiveDatequerystring(date)否时间轴数据的有效日期。

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST searchList

POST /{modelName}/searchList

根据指定的字段 fields、筛选条件 filters、排序条件 orders、分组计数字段,以及子查询条件,返回数据列表,不进行分页,但可以通过 pageSize 控制返回数据行数,默认返回 50 条数据。

Body 请求参数

{ "aggFunctions": [ "SUM", "amount" ], "effectiveDate": "2019-08-24", "fields": [ "id", "name" ], "filters": [ "name", "=", "Tom" ], "groupBy": [], "orders": [ "name", "ASC" ], "pageNumber": 1, "pageSize": 50, "splitBy": [], "subQueries": {}, "summary": true }

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyQueryParams否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST searchPage

POST /{modelName}/searchPage

根据指定的字段 fields、筛选条件 filters、排序条件 orders、页码 pageNumber、分页大小 pageSize、分组计数字段,以及子查询条件,返回分页数据,不传时使用后端默认值。

Body 请求参数

{}

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyQueryParams否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST searchPivot

POST /{modelName}/searchPivot

根据指定的字段 fields、筛选条件 filters、排序条件 orders、groupBy 字段、splitBy 字段,返回透视表数据。

Body 请求参数

{ "aggFunctions": [ "SUM", "amount" ], "effectiveDate": "2019-08-24", "fields": [ "id", "name" ], "filters": [ "name", "=", "Tom" ], "groupBy": [], "orders": [ "name", "ASC" ], "pageNumber": 1, "pageSize": 50, "splitBy": [], "subQueries": {}, "summary": true }

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyQueryParams否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST searchSimpleAgg

POST /{modelName}/searchSimpleAgg

纯粹的 SUM、AVG、MIN、MAX、COUNT 聚合函数查询。如: [“SUM”, “amount”],返回值的 key 为驼峰字符串 sumAmount。 忽略 AggQuery 的 fields、groupBy、page参数。需要数据分组、数据分页时,请使用 searchPage 接口。

Body 请求参数

{ "aggFunctions": [ "SUM", "amount" ], "effectiveDate": "2019-08-24", "filters": [ "name", "=", "Tom" ] }

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodySimpleQueryParams否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST updateByFilter

POST /{modelName}/updateByFilter

根据筛选条件更新数据,当前用户权限范围内,符合筛选条件的数据都会被更新。

Body 请求参数

{ "property1": {}, "property2": {} }

请求参数

名称位置类型必选说明
modelNamepathstring是none
filtersqueryarray否筛选条件[],详细参考中缀表达式用法,默认当前用户全部可见数据。
bodybodyobject否none
» additionalPropertiesbodyobject否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST updateList

POST /{modelName}/updateList

根据数据列表的 id 字段批量更新数据。成功返回 True,失败则抛出异常。

Body 请求参数

[ { "property1": {}, "property2": {} } ]

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyarray[object]否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST updateListAndReturn

POST /{modelName}/updateListAndReturn

根据数据列表的 id 字段批量更新数据,并从数据库返回更新后的数据列表。

Body 请求参数

[ { "property1": {}, "property2": {} } ]

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyarray[object]否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST updateOne

POST /{modelName}/updateOne

根据数据的 id 更新1条记录。成功返回 True,失败则抛出异常。

Body 请求参数

{ "id": 1, "cost": 2.555555, "profit": "3.9999999" }

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyobject否none
» additionalPropertiesbodyobject否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

POST updateOneAndReturn

POST /{modelName}/updateOneAndReturn

根据数据的 id 字段更新1条数据,并从数据库返回更新后的数据值。

Body 请求参数

{ "property1": {}, "property2": {} }

请求参数

名称位置类型必选说明
modelNamepathstring是none
bodybodyobject否none
» additionalPropertiesbodyobject否none

返回示例

200 Response

{ "code": 0, "data": true, "error": "string", "message": "string" }

返回结果

状态码状态码含义说明数据模型
200OK noneInline

返回数据结构

数据模型

API Response Body

{ "code": 0, "data": true, "error": "string", "message": "string" }

属性

名称类型必选约束中文名说明
codeinteger(int32)falsenone响应状态码
databooleanfalsenone结果数据
errorstringfalsenoneError 消息
messagestringfalsenone普通消息

Filters

[ "name", "=", "Tom" ]

支持嵌套筛选条件, 形如 [a OR b] AND [c OR d OR [e AND f] OR g] 结构,示例如下:

  • []
  • [“name”, ”=”, “Tom”]
  • [[“name”, ”=”, “Tom”], [“version”, ”=”, “6”]]
  • [[“name”, ”=”, “Tom”], “OR”, [“code”, ”=”, “A010”], “OR”, [“version”, ”=”, “2”]]
  • [[“name”, ”=”, “Tom”], “OR”, [“code”, ”=”, “A010”]], “AND”, [“version”, ”=”, “2”]]

属性

None

AggFunctions

[ "SUM", "amount" ]

支持多个聚合查询条件:

  • []
  • [“SUM”, “amount”]
  • [[“SUM”, “amount”], [“COUNT”, “id”]]

属性

None

QueryParams

{ "aggFunctions": [ "SUM", "amount" ], "effectiveDate": "2019-08-24", "fields": [ "id", "name" ], "filters": [ "name", "=", "Tom" ], "groupBy": [], "orders": [ "name", "ASC" ], "pageNumber": 1, "pageSize": 50, "splitBy": [], "subQueries": {}, "summary": true }

属性

名称类型必选约束中文名说明
aggFunctionsAggFunctionsfalsenone支持多个聚合查询条件:
* []
* [“SUM”, “amount”]
* [[“SUM”, “amount”], [“COUNT”, “id”]]
effectiveDatestring(date)falsenoneEffective date, default is Today.
fields[string]falsenoneFields to get, empty means all fields.
filtersFiltersfalsenone支持嵌套筛选条件, 形如 [a OR b] AND [c OR d OR [e AND f] OR g] 结构,示例如下:
* []
* [“name”, ”=”, “Tom”]
* [[“name”, ”=”, “Tom”], [“version”, ”=”, “6”]]
* [[“name”, ”=”, “Tom”], “OR”, [“code”, ”=”, “A010”], “OR”, [“version”, ”=”, “2”]]
* [[“name”, ”=”, “Tom”], “OR”, [“code”, ”=”, “A010”]], “AND”, [“version”, ”=”, “2”]]
groupBy[string]falsenoneFields to group by, empty means no grouping.
ordersOrdersfalsenone支持多个排序条件:
* []
* [“name”, “ASC”]
* [[“name”, “ASC”], [“sequence”, “DESC”]]
* or string format: “name ASC, sequence DESC”
pageNumberinteger(int32)falsenonePage number, start from 1, default 1.
pageSizeinteger(int32)falsenonePage size, or limit size for searchList, default 50.
splitBy[string]falsenonePivot split field list.
subQueriesobjectfalsenoneSub queries for relational fields: {fieldName: SubQuery}
» additionalPropertiesSubQueryfalsenone基于关系型字段的子查询条件,结构如: {fieldName: SubQuery}
summarybooleanfalsenoneWhether to return the summary result of numeric fields, default no summary.

SubQuery

{}

基于关系型字段的子查询条件,结构如: {fieldName: SubQuery}

属性

名称类型必选约束中文名说明
countbooleanfalsenoneOnly count the sub records, true/false
fields[string]falsenone子查询字段列表。
filtersFiltersfalsenone支持嵌套筛选条件, 形如 [a OR b] AND [c OR d OR [e AND f] OR g] 结构,示例如下:
* []
* [“name”, ”=”, “Tom”]
* [[“name”, ”=”, “Tom”], [“version”, ”=”, “6”]]
* [[“name”, ”=”, “Tom”], “OR”, [“code”, ”=”, “A010”], “OR”, [“version”, ”=”, “2”]]
* [[“name”, ”=”, “Tom”], “OR”, [“code”, ”=”, “A010”]], “AND”, [“version”, ”=”, “2”]]
ordersOrdersfalsenone支持多个排序条件:
* []
* [“name”, “ASC”]
* [[“name”, “ASC”], [“sequence”, “DESC”]]
* or string format: “name ASC, sequence DESC”
topNinteger(int32)falsenoneTopN query on OneToMany field, using with orders.

Orders

[ "name", "ASC" ]

支持多个排序条件:

  • []
  • [“name”, “ASC”]
  • [[“name”, “ASC”], [“sequence”, “DESC”]]
  • or string format: “name ASC, sequence DESC”

属性

None

SimpleQueryParams

{ "aggFunctions": [ "SUM", "amount" ], "effectiveDate": "2019-08-24", "filters": [ "name", "=", "Tom" ] }

属性

名称类型必选约束中文名说明
aggFunctionsAggFunctionsfalsenone支持多个聚合查询条件:
* []
* [“SUM”, “amount”]
* [[“SUM”, “amount”], [“COUNT”, “id”]]
effectiveDatestring(date)falsenoneEffective date, default is Today.
filtersFiltersfalsenone支持嵌套筛选条件, 形如 [a OR b] AND [c OR d OR [e AND f] OR g] 结构,示例如下:
* []
* [“name”, ”=”, “Tom”]
* [[“name”, ”=”, “Tom”], [“version”, ”=”, “6”]]
* [[“name”, ”=”, “Tom”], “OR”, [“code”, ”=”, “A010”], “OR”, [“version”, ”=”, “2”]]
* [[“name”, ”=”, “Tom”], “OR”, [“code”, ”=”, “A010”]], “AND”, [“version”, ”=”, “2”]]
最后更新于