Skip to content

项目管理

项目用于管理和组织设备,支持创建、查询、更新和删除操作。

获取项目列表

获取当前组织的所有项目。

请求

http
GET /api/v2/projects/

参数

参数类型必填说明
pageinteger页码,默认为1
page_sizeinteger每页数量,默认为20
searchstring搜索项目 ID 或名称

响应

json
{
    "success": true,
    "data": [
        {
            "project_id": "PRJ123456",
            "name": "项目名称",
            "device_count": 10,
            "offline_device_count": 2,
            "created_at": "2025-03-19T01:20:24Z",
            "updated_at": "2025-03-19T01:20:24Z"
        }
    ],
    "error": null
}

字段说明

字段类型说明
project_idstring项目ID
namestring项目名称
device_countinteger项目中的设备总数
offline_device_countinteger离线设备数量
created_atstring创建时间
updated_atstring更新时间

创建项目

创建新的项目。

请求

http
POST /api/v2/projects/

请求参数

参数类型必填说明
namestring项目名称

请求示例

json
{
    "name": "新项目名称"
}

响应

json
{
    "success": true,
    "data": {
        "project_id": "PRJ123456",
        "name": "新项目名称",
        "device_count": 0,
        "offline_device_count": 0,
        "created_at": "2025-03-19T01:20:24Z",
        "updated_at": "2025-03-19T01:20:24Z"
    },
    "error": null
}

更新项目

更新现有项目的信息。

请求

http
PUT /api/v2/projects/{project_id}/

请求参数

参数类型必填说明
namestring项目名称

请求示例

json
{
    "name": "更新后的项目名称"
}

响应

json
{
    "success": true,
    "data": {
        "project_id": "PRJ123456",
        "name": "更新后的项目名称",
        "device_count": 10,
        "offline_device_count": 2,
        "created_at": "2025-03-19T01:20:24Z",
        "updated_at": "2025-03-19T01:20:24Z"
    },
    "error": null
}

删除项目

删除指定的项目。

请求

http
DELETE /api/v2/projects/{project_id}/

响应

json
{
    "success": true,
    "data": null,
    "error": null
}

获取项目设备列表

获取指定项目下的所有设备。

请求

http
GET /api/v2/projects/{project_id}/devices/

响应

json
{
    "success": true,
    "data": [
        {
            "device_id": "DEV123456",
            "name": "设备名称",
            "status": "online",
            "connect_time": "2025-03-19T01:20:24Z"
            // 其他设备信息...
        }
    ],
    "error": null
}

转移项目

将项目及其下的所有设备转移到其他组织。转移时,项目下的所有设备也会被转移到目标组织,并且设备的分组信息会被清空。

请求

http
POST /api/v2/projects/{project_id}/transfer/

请求参数

参数类型必填说明
target_org_slugstring目标组织的slug

请求示例

json
{
    "target_org_slug": "target-org"
}

响应

json
{
    "success": true,
    "data": {
        "project_id": "PRJ123456",
        "name": "项目名称",
        "organization_id": "新组织ID"
    },
    "error": null
}

权限要求

  • 需要组织管理员权限
  • 源组织和目标组织都必须存在

注意事项

  1. 转移后,项目下所有设备的组织归属会更新
  2. 设备的分组信息会被清空
  3. 不能转移到当前所属的组织

错误码

错误码说明错误信息
400请求参数错误-
400项目已属于目标组织"项目已属于目标组织"
401未认证-
403无权限访问-
404目标组织不存在"目标组织不存在"
404项目不存在-

错误码

错误码说明错误信息
400请求参数错误具体的参数错误信息
401未认证"认证失败"
403无权限访问"无权限执行此操作"
404项目不存在"项目不存在"
404目标组织不存在"目标组织不存在"
400项目已属于目标组织"项目已属于目标组织"

响应格式

错误响应的格式如下:

json
{
    "success": false,
    "data": null,
    "error": {
        "code": 400,
        "message": "错误信息"
    }
}