小白接口

5135 sql server 获取树状分类数据接口 [直连版] App.DB_MsSQL_Data.FreeTree

接口地址:http://api.okayapi.com/?s=App.DB_MsSQL_Data.FreeTree

接口描述: 可以根据自定义条件获取树状分类的数据,可用于:组织架构、目录分类、网站菜单、级联地址等场景。要求:sql server数据库表中须含有指向父级的ID。当前最多一次性获取两层。

接口标签:付费(包月/按量/私服)验签

请求协议
HTTP/HTTPS
请求方式
GET/POST(推荐POST)
编码格式
UTF-8
返回格式
JSON

在线测试    添加收藏    直接访问接口    我要二开此接口


接口参数 若无特殊说明,接口参数同时支持GET和POST传递;推荐:查询/删除用GET,创建/更新用POST。

参数名字参数类型是否必须默认值备注参数说明
app_key字符串必须最小:32公共参数 开发者应用的app_key,查看我的app_key,如果还没有,可免费注册开通。
sign字符串可选公共参数 动态签名,签名生成算法请见:如何生成签名,或直接使用封装好的SDK开发包
如果不需要签名,可进入小白开放平台接口签名设置关闭或开启签名。通过在线测试工具可进行签名的对比和调试。 企业版支持专属签名算法定制。
return_data字符串可选0公共参数 数据返回结构,其中:
  • return_data=0,返回完整的接口结果,示例:{"ret":200,"data":{"err_code":0,"err_msg":"","title":"Hi YesApi,欢迎使用小白开放接口!"},"msg":"V3.1.0 YesApi App.Hello.World"}
  • return_data=1,返回简洁的接口结果,只返回data字段,结构简化一级,更扁平,示例:{"err_code":0,"err_msg":"V3.1.0 YesApi App.Hello.World","title":"Hi YesApi,欢迎使用小白开放接口!"}
model_name字符串必须数据库表名,表名规范如下:
  • 表主键:每应表必须都有一个自增主键,统一推荐为:id INT identity(1,1) NOT NULL PRIMARY KEY
  • 表名前缀:如果已经通过添加新数据库连接配置编辑数据库配置接口配置统一表前缀table_prefix,则表名参数不需要再手动添加表前缀,否则会重复。
  • 表名后缀:不能采用划线加数字为结尾的表名,因为下划线加数字的后缀会系统作为分库分表的配置而解析,如果有疑惑,请与技术客服联系。
db_mark字符串必须直连数据库代号,注意!这是开发者添加的数据库代号,不是数据库的名称。使用API前请先添加新数据库连接配置
parent_field字符串必须parent_id父级ID的字段名称,此字段必须要出现在模型中,建议和ID类型一样,为int类型。顶级分类的父级ID为0。
parent_id整型必须0父级ID的值,顶级分类的父级ID为0。
where字符串JSON格式可选[]可选且安全的where条件,格式为:[["第一个位置表示字段名称(字段必须先存在)","第二个位置表示判断>符号(可以是:>、>=、<、<=、=、<>, LIKE)","第三个位置表示判断值"]]。多个条件逻辑关系为:AND,并且接口会默认加上父级ID的匹配。
where_X字符串可选动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值。支持的比较符和示例如下:
  • EQ:等于(默认),如:where_year=EQ-2020,或:where_year=2020,表示年份year等于2020;
  • GT:大于,如:where_year=GT-2020,表示年份year大于2020;
  • GE:大于等于,如:where_year=GE-2020,表示年份year大于或等于2020;
  • LT:小于,如:where_year=LT-2020,表示年份year小于2020;
  • LE:大于等于,如:where_year=LE-2020,表示年份year小于或等于2020;
  • NE:不等于,如:where_year=NE-2020,表示年份year不等于2020;
  • LIKE:模糊匹配,如:where_name=LIKE-小白,表示名字name含有小白的;
  • NLIKE:模糊匹配(排除),如:where_name=NLIKE-小白,表示名字name不包含小白的
如果同一字段有多个条件,使用双竖线||分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一)
select字符串用,分割可选SQL语句的SELECT部分,多个字段用英文逗号分割,如:select=id,uuid
order字符串JSON格式可选[]SQL语句的ORDER部分,格式为:[第一组排序,第二组排序,……],如:order = ["id DESC", "add_time ASC"],表示 id DESC, add_time ASC。特别地,RAND表示随机排序。

在线测试

参数是否必填
s 必须
return_data 可选
model_name 必须
db_mark 必须
parent_field 必须
parent_id 必须
where 可选
select 可选
order 可选

客户端请求示例

查看我的接口域名、app_key和app_secrect 客户端接入指南(如何生成签名) 开启/关闭签名

假设原来有数据:
1> select * from TestTable;
2> go
id          name                                               quantity    parent_id  
----------- -------------------------------------------------- ----------- -----------
          4 小白V6                                                        27        NULL
          5 小白接口V5                                                     674           0
          6 小白V8                                                        19           4
          7 小白V8                                                        20           4
          8 小白V8                                                       131           0
          9 小白接口V5                                                     131           8
          10 小白接口V5                                                      10           8

(7 rows affected)

请求第一级:
{你的接口域名}/?s=App.DB_MsSQL_Data.FreeTree&model_name=TestTable&db_mark=db_test&parent_field=parent_id&parent_id=0&where=[["id", ">=", "1"]]&order=["id DESC"]&app_key={你的app_key}&sign={动态签名}

返回:
{
    "ret": 200,
    "data": {
        "err_code": 0,
        "err_msg": "",
        "tree": [
        {
            "id": 8,
            "name": "小白V8",
            "quantity": "131",
            "parent_id": 0,
            "children_tree": [
            {
                "id": 10,
                "name": "小白接口V5",
                "quantity": "10",
                "parent_id": 8
            },
            {
                "id": 9,
                "name": "小白接口V5",
                "quantity": "131",
                "parent_id": 8
            }
            ]
        },
        {
            "id": 5,
            "name": "小白接口V5",
            "quantity": "674",
            "parent_id": 0,
            "children_tree": []
        }
        ]
    },
    "msg": "V1.4.17 小白开放接口 App.DB_MsSQL_Data.FreeTree"
}

请求第二级:
{你的接口域名}/?s=App.DB_MsSQL_Data.FreeTree&model_name=TestTable&db_mark=db_test&parent_field=parent_id&parent_id=8&where=[["id", ">=", "1"]]&order=["id DESC"]&app_key={你的app_key}&sign={动态签名}

返回:
{
    "ret": 200,
    "data": {
        "err_code": 0,
        "err_msg": "",
        "tree": [
        {
            "id": 10,
            "name": "小白接口V5",
            "quantity": "10",
            "parent_id": 8,
            "children_tree": []
        },
        {
            "id": 9,
            "name": "小白接口V5",
            "quantity": "131",
            "parent_id": 8,
            "children_tree": []
        }
        ]
    },
    "msg": "V1.4.17 小白开放接口 App.DB_MsSQL_Data.FreeTree"
}

接口使用帮助说明

小白君正在拼命补充中……

返回结构说明

返回字段类型说明
ret整型接口状态码,200表示成功,4xx表示客户端非法请求,5xx表示服务端异常,查看异常错误码
data.err_code整型状态操作码,0成功;1开发类错误,查询失败(表不存在或查询错误);
data.err_msg字符串错误提示信息,err_code非0时参考此提示信息
data.tree字符串树状数据
data.tree[].id整型固定返回,ID
data.tree[].{parent_id}整型固定返回,父级ID,字段名由客户端指定
data.children_tree字符串子节点的树状数据,没有时为空数组。模型中不能添加children_tree字段,以免引起冲突。返回字段、过滤条件和排序逻辑和顶层一样。
msg字符串提示信息,面向技术人员的帮助或错误提示信息

ret异常错误码

错误码错误类型错误描述信息解决方法
ret = 200成功请求成功
ret = 400客户端非法请求非法请求,参数错误1、根据接口文档的接口参数,提供正确的参数
ret = 404客户端非法请求接口服务不存在1、查看小白接口大全,确保接口服务名称拼写正确
ret = 500小白接口异常如果出现此错误,请联系技术人员处理1、进入QQ交流群897815708,反馈问题;2、或者提交工单,一天内回复
ret = 401客户端非法请求用户未登录,或登录凭证已过期1、如果用户未注册,请先用注册接口;2、如果注册未登录或会话过期,请先用登录接口
ret = 406客户端非法请求非法app_key,请核对你所在的接口域名1、在我的套餐查看并核对接口域名
ret = 407客户端非法请求当前应用已过期1、进行续费或续约,延长应用有效期
ret = 408客户端非法请求当前应用存在异常,已被封号1、联系在线客服人工处理
ret = 409客户端非法请求签名错误1、使用在线测试,校正签名;2、关闭特定或全部签名设置;3、如果过期,可以进行续约/升级
ret = 410客户端非法请求权限不足,非系统管理员1、应用权限不足,可联系在线客服咨询沟通
ret = 411客户端非法请求权限不足,应用管理员未登录1、请提供应用管理员的admin_uuid和admin_token参数后重试
ret = 412客户端非法请求权限不足,非应用管理员1、请在果创云把会员设置为管理员
ret = 413客户端非法请求本月接口流量超出,已被临时冻结1、开通接口流量叠加包,或升级套餐
ret = 414客户端非法请求并发过高1、请降低请求频率,检测是否有死循环调用,或是否被他人恶意使用。如果流量确实很大,可联系在线客服进行定制化或私有云部署。
ret = 415客户端非法请求接口已被开发者关闭1、接口已被开发者关闭,请进入果创云接口开关重新开启
ret = 416客户端非法请求权限不足,个人免费版套餐无法使用专业版接口1、请先升级终身会员/标准版/旗舰版/企业版

常见问题FAQ

Q1 问:出现 414 Request-URI Too Large 时怎么解决?答:对于全部参数,改用POST方式传递,并且从GET链接里面去掉。