diff --git a/api/routes/video_urls.py b/api/routes/video_urls.py new file mode 100644 index 0000000..db180f2 --- /dev/null +++ b/api/routes/video_urls.py @@ -0,0 +1,62 @@ +""" +视频地址API路由 +""" + +from typing import List +from fastapi import APIRouter, HTTPException, status +from pydantic import BaseModel + +# 创建路由器 +router = APIRouter( + prefix="/video-urls", + tags=["视频地址管理"], + responses={ + 404: {"description": "资源不存在"}, + 400: {"description": "请求参数错误"}, + 500: {"description": "服务器内部错误"} + } +) + + +class VideoUrlRequest(BaseModel): + """获取视频地址请求模型""" + videoId: List[str] + + +class VideoUrlResponse(BaseModel): + """获取视频地址响应模型""" + videoUrl: List[str] + + +@router.post( + "/", + response_model=VideoUrlResponse, + status_code=status.HTTP_200_OK, + summary="获取视频地址", + description="根据视频ID数组获取对应的视频地址数组" +) +async def get_video_urls(request: VideoUrlRequest): + """ + 获取视频地址 + + - **videoId**: 视频ID数组 (必须,字符串数组) + + 返回: + - **videoUrl**: 视频地址数组 (字符串数组) + """ + try: + # TODO: 后续实现根据videoId查询视频地址的逻辑 + # 目前先返回模拟数据 + video_urls = [] + for video_id in request.videoId: + # 模拟根据videoId生成视频地址 + video_url = f"http://example.com/videos/{video_id}.mp4" + video_urls.append(video_url) + + return VideoUrlResponse(videoUrl=video_urls) + + except Exception as e: + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail=f"获取视频地址失败: {str(e)}" + ) \ No newline at end of file