如何遍历数据

所有的遍历接口和查询检索接口都支持下面两个参数:

参数名 参数类型 参数说明 必需 备注
offset integer 响应结果起始下标 默认0
limit integer 响应结果的数量 默认50,最大1000

比如,当前有120条数据,limit默认为50,offset分别设置为0、50、100执行三次查询,分别返回第0~50、50~100、100~120条数据,就完成了遍历;或者当数据小于1000条时,将limit设置为1000即可返回全部数据。

查询的使用方法

查询接口的请求体结构是固定的,包含查询和排序两部分,使用类似于K-V的形式入参,结构如下所示:

参数名 参数类型 参数说明 必需 备注
querys array 查询参数
sorts array 排序参数

querys

参数名 参数类型 参数说明 必需 备注
name string 属性名称
op string 查询条件 支持:> , >= , = , < , <= , <> , like
values array 内容是string类型

每个请求的所支持name不一致,请根据请求中的说明确认。

以”查询授权码“接口举例,name支持sn字段,查询SN1SN2的数据,入参如下:

{
    "name": "sn",
    "op": "=",
    "values": [
        "SN1", "SN2"
    ]
}

查询参数可以使用多个条件筛选,会形成下面的结构:

{
    "querys": [
        {
            "name": "foo",
            "op": "=",
            "values": [
                "foo", "foo" ...
            ]
        },
        {
            "name": "boo",
            "op": ">",
            "values": [
                "boo", "boo" ...
            ]
        }
        ...
    ]
}

sorts

参数名 参数类型 参数说明 必需 备注
name string 属性名称
order string 排序方式 支持:ASC(正序),DESC(倒序),默认ASC

与查询参数一样,每个请求所支持的name不一致,需要在请求说明中确认。

以”查询产品“接口举例,name支持productName字段,想要数据倒序返回,入参如下:

{
    "name": "productName",
    "order": "DESC"
}

同样,响应结果可以有多个排序条件,会形成下面的结构:

{
    "sorts": [
        {
            "name": "foo"
        },
        {
            "name": "boo",
            "order": "DESC"
        }
        ...
    ]
}

查询接口皆支持遍历数据,使用请求参数和请求体配合即可返回指定条件内的所有数据。

Scope使用方法

授权码接口可以通过在请求参数添加scope返回更多的内容,包括产品、模版、业务、特征线、配置项等内容,返回的内容可以单独或组合指定,也可以将scope设置为all来获取所有可返回内容。

scope参数说明

参数(不区分大小写) 对应内容
product 产品信息
template 模版信息
business 业务信息
feature 关联的特征项
data 配置项信息
machine 激活的设备
all 包含全部内容

入参使用空格作为间隔(例如scope=product business template),可重复输入但不允许输入不在上表范围内的参数;当输入包含all时,其他参数全部忽略。

示例

GET /bitanswer/api/sns?limit=1&scope=product business template HTTP/1.1
Host: back-office-api.bitanswer.cn
bitkey: ••••••

响应示例

{
    "status": 0,
    "data": {
        "total": 999,
        "items": [
            {
                "sn": "xxxxx",
                "activeDate": "2023-09-11 09:59:33",
                "status": 0,
                "updateTime": "2024-07-02 15:57:11",
                "regDate": "2023-09-11 09:59:33",
                "type": "CLOUD",
                "expirationDays": 123,
                "concurrentNumber": 1,
                "transferVolume": 0,
                "transferNumber": 0,
                "features": [
                    {
                        "id": 2,
                        "name": "test_fid_101_v_0",
                        "featureId": 101,
                        "value": 1110,
                        "source": "PRODUCT"
                    },
                    {
                        "id": 4,
                        "name": "test_fid_102_v_0",
                        "featureId": 102,
                        "value": 1110,
                        "source": "PRODUCT"
                    },
                    {
                        "id": 6,
                        "name": "test_fid_103_v_0",
                        "featureId": 103,
                        "value": 1110,
                        "source": "PRODUCT"
                    },
                    {
                        "id": 8,
                        "name": "test_fid_104_v_0",
                        "featureId": 104,
                        "expirationDays": 0,
                        "users": 0,
                        "value": 2220,
                        "source": "PRODUCT"
                    },
                    {
                        "id": 10,
                        "name": "test_fid_105_v_0",
                        "featureId": 105,
                        "expirationDays": 0,
                        "users": 0,
                        "value": 2220,
                        "source": "PRODUCT"
                    },
                    {
                        "id": 12,
                        "name": "test_fid_106_v_0",
                        "featureId": 106,
                        "expirationDays": 0,
                        "users": 0,
                        "value": 2220,
                        "source": "PRODUCT"
                    }
                ],
                "data": [
                    {
                        "name": "unit_data_name_1",
                        "value": "unit_data_value_1",
                        "updateTime": "2022-12-02 10:13:49",
                        "status": 0,
                        "source": "template"
                    },
                    {
                        "name": "unit_data_name",
                        "value": "unit_data_value",
                        "updateTime": "2022-08-25 17:13:35",
                        "status": 0,
                        "source": "product"
                    },
                    {
                        "name": "unit_data_name_2",
                        "value": "unit_data_value_2",
                        "updateTime": "2022-12-02 10:13:49",
                        "status": 0,
                        "source": "template"
                    }
                ],
                "product": {
                    "productName": "demo",
                    "productGuid": "xxx",
                    "description": "product description."
                },
                "business": {
                    "guid": "xxxxx",
                    "name": "unitTest_cloud",
                    "type": "CLOUD",
                    "description": "business description."
                },
                "template": {
                    "regDate": "2022-08-29 18:23:35",
                    "name": "unitTestTemplate1",
                    "status": 0,
                    "description": "template description."
                },
                "licenseBorrow": true,
                "peak": 0
            }
        ]
    }
}

帐号授权专用Scope使用方法

scope参数说明

参数(不区分大小写) 对应内容
count 返回结果中包含符合条件的结果数
basic 返回含有详细信息的内容(默认basic)
all all表示内容比basic更详细

入参使用空格作为间隔(例如scope=count basic all),不可重复输入且但会忽略输入不在上表范围内的参数。

常见错误码

515 不合法的参数

1283 特征项没有找到

产生原因

  • 无法从指定的特征项ID、名称等条件中找到唯一的特征项时会返回此错误码。对于产品而言是不存在;对于SN而言可能是未勾选特征项或通过fid查到但找到了多个特征项。

如何解决

  • 使用GET /products/{name}/features获取产品所有的特征项信息,与输入内容对比。

  • 使用GET /sns/{sn}/features获取授权码所有的特征项信息,与输入内容对比。

1537 指定的配置项没有找到

1832 未找到指定用户/客户

产生原因

  • 使用用户名/客户名不查到对应的用户/客户。

1918 客户已存在

产生原因

  • 当添加或修改客户时出现客户名或客户编号referenceId已存在时会返回此错误码。

1992 产品名已存在

1995 批量离线升级中有出错的

2305 指定的产品不存在

产生原因

  • 当使用产品名查询不到产品时会返回此错误码

4123 不支持的查询项

产生原因

  • 查询时请求体中的querysname输入的值不支持查询或sortsname输入的值不支持排序。

如何解决

  • 根据接口下表明的queryssorts支持的值进行修改。

5633 超过可分发的用户数

产生原因

  • 集团可自由拆分的授权码在修改授权码用户数时,将用户数变小,但已经分配的用户数超过当前设置的用户数。

  • 集团可自由拆分的授权码分配的设备在取消回收时,用户数不够。

如何解决

  • 修改集团可自由拆分的授权码的用户数时,用户数需要大于等于已分配的用户数总和。
  • 集团可自由拆分的授权码下的设备在取消回收时,修改设备的用户数在可用范围内。