运动视频API文档

1. 上传运动视频

POST /gym/video/upload

上传新的运动视频文件并创建视频记录。

请求参数

name (必填): 视频名称

description (可选): 视频描述

category (必填): 视频类别,可选值:warm_up(热身)、strength(力量)、cardio(有氧)、flexibility(柔韧)、recovery(恢复)、other(其他)

difficulty_level (必填): 难度级别,可选值:beginner(初级)、intermediate(中级)、advanced(高级)

member_ids (可选): 关联会员ID列表,多个ID用逗号分隔

video_file (必填): 视频文件(二进制)

thumbnail (可选): 缩略图(二进制)

响应

{
    "error": 0,
    "data": {
        "id": 1,
        "name": "早晨热身运动",
        "message": "视频上传成功"
    }
}
    

2. 获取运动视频列表

GET /gym/video/list

获取已发布的运动视频列表,支持多种筛选条件。

请求参数

member_id (可选): 会员ID,如果提供则返回该会员关联的视频

category (可选): 视频类别

difficulty_level (可选): 难度级别

limit (可选): 返回记录数量限制

offset (可选): 返回记录偏移量

响应

{
    "error": 0,
    "data": [
        {
            "id": 1,
            "name": "早晨热身运动",
            "description": "适合早晨进行的简单热身运动",
            "category": "warm_up",
            "difficulty_level": "beginner",
            "duration": 10.5,
            "video_url": "https://example.com/videos/1",
            "thumbnail": "base64编码的缩略图",
            "view_count": 15,
            "trainer": {
                "id": 1,
                "name": "张教练"
            }
        },
        // 更多视频...
    ]
}
    

3. 获取运动视频详情

GET /gym/video/{video_id}

获取特定运动视频的详细信息,同时增加该视频的观看次数。

请求参数

video_id (必填): 视频ID,作为URL路径的一部分

响应

{
    "error": 0,
    "data": {
        "id": 1,
        "name": "早晨热身运动",
        "description": "适合早晨进行的简单热身运动",
        "category": "warm_up",
        "difficulty_level": "beginner",
        "duration": 10.5,
        "video_url": "https://example.com/videos/1",
        "video_file": "base64编码的视频文件",
        "thumbnail": "base64编码的缩略图",
        "view_count": 16,
        "trainer": {
            "id": 1,
            "name": "张教练"
        },
        "members": [
            {
                "id": 1,
                "name": "李会员"
            },
            // 更多会员...
        ]
    }
}