1. 根据条件导出实例数据
根据条件导出实例数据。
请求方式:POST
请求地址:/bosfoundationservice/{appKey}/prototype/export
1.1. 请求参数:
Headers:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
Authorization | string | c4570cb9ca324bc8ba7dd9d1967710ea | 是 | access_token |
PathParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
NULL | NULL | NULL | NULL | NULL |
SearchParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
NULL | NULL | NULL | NULL | NULL |
Body:
application/json:
[
{
"entity":"wbses",//导出wbses全部数据,导出树形结构时,父节点在子节点之前
},
{
"sheet":"导出tags",//sheet页名称,如不传,与bosclass相同,如已有相同的sheet页,在后面加-2、-3等
"entity":"tags",//导出的实体
"condition":[//condition内为多实例关联查询
{}
],
"nestAnd":[//nestAnd/nestOr为单实例的多条件查询
{},...
],
"nestOr":[...],
"page":1,
"per_page":10,
"sortby":"name",//排序字段
"order":"asc",//升序asc或降序desc
"getChildren":true,//是否导出子节点
"select":{
"编码":"code","名称":"name" //select同多实例关联查询,字段“编码”“名称”等为导出表头,如不配置,导出数据模型中定义的实体类全部字段,以属性名作为表头
}
}
]
1.2. 参数说明:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
NULL | NULL | NULL | NULL | NULL |
1.3. 正确返回:
Http Status Code:200
下载文件 export.xls
1.4. 状态码:
状态码 | code | message | 原因 |
---|---|---|---|
200 | JSON_FORMAT_WRONG | Json格式错误 | 当传入Body格式错误时 |
200 | ENTITY_BOSCLASS_NOTFOUND | 实体类{entity}不存在 | 当传入entity错误时 |
200 | ENTITY_QUERY_NUMBER_SETTING_CONFLICT | 不可同时设置number为true | 如codition或nestAnd/nestOr参数中number值为true |
200 | ENTITY_QUERY_NUMBER_CONVERT_WRONG | value参数值{value }非数字 | 如codition或nestAnd/nestOr参数中number值为true,但value值无法转换为数字 |
200 | ENTITY_QUERY_NUMBER_SETTING_INVALID | number参数值{number}无效 | 如codition或nestAnd/nestOr参数中number值为true、false、空以外的其他值 |
200 | ENTITY_QUERY_PAGE_SETTING_INVALID | page参数值{page}非数字 | 查询参数page值为数字以外的值时 |
200 | ENTITY_QUERY_PERPAGE_SETTING_INVALID | per_page参数值{per_page}非数字 | 查询参数per_page值为数字以外的值时 |
200 | ENTITY_QUERY_ORDER_SETTING_INVALID | order参数值{order}无效 | 查询参数order值为asc或desc以外的值时 |
1.5. 注意事项:
1、导出实例数据为对象类实例数据。
2、可同时导出多个表,以sheet配置作为sheet页名,如不配置,以entity配置实体类名作为sheet页名;如有多个sheet页名字相同,在后面加-2、-3区分。
3、导出某一个实体时,导出字段为select中的配置,以select字段为表头。如不指定select,则导出entity指定的实体类在数据模型中配置的所有字段,以字段名作为表头。
4、当查询条件为多实体关联时,select中查询字段必须加alias.。
5、导出树形结构数据时,父节点在子节点之前。
6、getChildren表示是否导出子节点,当有查询条件且getChildren为true时,以查询结果为准,同时导出所有子节点。
7、目前不支持value值为数组的查询
8、operator仅支持==,!=,<,<=,>,>=,like,regex, in, notIn,isNull,notNull操作: ==:等于 !=:不等于 <:小于 <=:小于等于
>:大于
>=:大于等于
like:模糊查询,如当field为name,value为AAA时,则查找name属性中值包含AAA的实体对象。
regex:正则表达式,如 ^a 表示查询以a开头。
in: 数组中是否包含值,如field为name,value为["A","B","C"],则查找name的值是"A"、"B"、"C"的实体对象
notIn: 数组中是否不包含值,如field为name,value为["A","B","C"],则查找name的值不是"A"、"B"、"C"的实体对象
isNull: 为空,如field为name,则查找name的值为空或者name属性不存在的实体对象
notNull: 不为空,如field为name,则查找name的值不为空的实体对象
8、condition参数中number可不传入,如传入且值为true则operator值不可为like和regex,且比较时将数据转换为数字后再比较;如number值为false、空或number不传入,则进行字符串比较。
9、查询结果需根据accessToken的用户信息进行权限校验和过滤,最小需要读的权限。
10、实体对象查询范围为entity对应数据表中所有数据(基类和子类的实例数据)。
11、condition参数中当有多个搜索条件时,每个条件的logic表示与前一个条件的逻辑关系;第一个搜索条件的logic默认按"AND"处理,对第一个搜索条件的logic设置无需调整。多个条件的连接优先级为OR优先于AND,即当OR、AND同时存在于搜索条件中时,先进行OR连接,再进行AND连接。
12、condition、nestAnd、nestOr非必填,如三者都未传,则返回所有结果。
13、nestAnd、nestOr可以嵌套在任意一个对象的查询条件中,nestAnd表示其内部的查询条件之间为and与关系,nestOr表示其内部的查询条件之间为or或关系。
14、不建议condition与nestAnd/nestOr混用;一般情况简单的查询条件可使用condition,当多个查询条件需要进行and、or的复杂组合时建议使用nestAnd和nestOr。
15、导出数据按照sortby字段的order顺序进行排序。sortby不传或为非对象字段时则查询结果不排序,仅在导出树形结构时按照父节点在子节点之前的规则进行排序。
16、按照参数page和per_page获取用户有读取权限的数据:page>0,per_page>0 则导出第page页数据(如无数据则为空数组),page未提供,per_page>0 导出第一页数据(如无数据则为空数组);per_page=0则导出数据为空;per_page不传则导出所有数据(如无数据则为空数组)。
17、当查询条件或返回内容中需使用对象的惟一标识key时,写法为:_key。
1.6. 请求示例
请求URL
http://bosgw.bimwinner.com/bosfoundationservice/{appKey}/prototype/export
Headers
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyS2V5IjoiMTUyN2ZmYWRhZjhhNGY0YWJhZTk4NWM2N2JiZDQ5NmQiLCJ1c2VyTmFtZSI6InJhb2ppYWp1biIsInVzZXJUeXBlIjoiMCIsImFwcEtleSI6InE4NWU4NTdhZWIwODQ1ZjE5YzBkY2QyYTQyNmUxMWUwIiwiYXBwTmFtZSI6InRlc3QxMTExMTEyMyIsImFwcERiIjoicTg1ZTg1N2FlYjA4NDVmMTljMGRjZDJhNDI2ZTExZTAiLCJsb2dpblRpbWUiOiIxNTk2Njk4MDAyMTA3IiwiZXhwIjowfQ.XsKFdpYnnH1lJ__u6x-4tvCnJ2BX7WfJ5EMGMAWfCe8
Body(application/json)
[
{
"entity":"wbses"// 导出wbses全部数据,导出树形结构时,父节点在子节点之前
},
{
"sheet":"导出tags", // sheet页名称,如不传,与bosclass相同,如已有相同的sheet页,在后面加-2、-3等
"entity":"tags",// 导出的实体
"condition":[],
"nestAnd":[],
"page":1,
"per_page":10,
"sortby":"name",// 排序字段
"order":"asc",// 升序asc或降序desc
"getChildren":true// 是否导出子节点
}
]
正常响应 200
Http Status Code:200)
下载文件 export.xls