17 KiB
17 KiB
品牌模块API文档
概述
品牌模块是负责管理品牌、产品、活动以及品牌聊天会话的系统。该模块提供了一系列RESTful API接口,用于创建、查询、更新和删除品牌相关的资源。
通用响应格式
所有API响应都遵循以下统一的JSON格式:
{
"code": 200, // 状态码,200表示成功,其他值表示错误
"message": "成功", // 响应消息
"data": {} // 响应数据,可能是对象、数组或null
}
认证方式
所有接口都需要使用自定义Token认证,请在HTTP请求头中添加以下字段:
Authorization: Token your_token_here
1. 品牌管理 (Brands)
1.1 获取品牌列表
- URL:
/brands/
- 方法:
GET
- 描述: 获取所有品牌的列表
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "成功", "data": [ { "id": "uuid字符串", "name": "品牌名称", "description": "品牌描述", "logo_url": "品牌Logo链接", "category": "品牌分类", "source": "来源", "collab_count": 0, "creators_count": 0, "campaign_id": "活动ID", "total_gmv_achieved": "0.00", "total_views_achieved": "0.00", "shop_overall_rating": "0.0", "dataset_id_list": [], "created_at": "创建时间", "updated_at": "更新时间", "is_active": true } ] }
1.2 创建品牌
- URL:
/brands/
- 方法:
POST
- 描述: 创建一个新的品牌
- 请求参数:
{ "name": "品牌名称", // 必填,唯一 "description": "品牌描述", // 可选 "logo_url": "品牌Logo链接", // 可选 "category": "品牌分类", // 可选 "source": "来源", // 可选 "collab_count": 0, // 可选,默认0 "creators_count": 0, // 可选,默认0 "campaign_id": "活动ID", // 可选 "total_gmv_achieved": "0.00", // 可选,默认0 "total_views_achieved": "0.00", // 可选,默认0 "shop_overall_rating": "0.0", // 可选,默认0 "is_active": true // 可选,默认true }
- 响应数据: 返回创建的品牌信息
1.3 获取品牌详情
- URL:
/brands/{id}/
- 方法:
GET
- 描述: 获取指定ID的品牌详细信息,包括关联的产品和活动
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "成功", "data": { "id": "uuid字符串", "name": "品牌名称", "description": "品牌描述", "logo_url": "品牌Logo链接", "category": "品牌分类", "source": "来源", "collab_count": 0, "creators_count": 0, "campaign_id": "活动ID", "total_gmv_achieved": "0.00", "total_views_achieved": "0.00", "shop_overall_rating": "0.0", "dataset_id_list": [], "products": [], "campaigns": [], "created_at": "创建时间", "updated_at": "更新时间", "is_active": true } }
1.4 更新品牌
- URL:
/brands/{id}/
- 方法:
PUT
/PATCH
- 描述: 更新指定ID的品牌信息
- 请求参数: 同创建品牌
- 响应数据: 返回更新后的品牌信息
1.5 删除品牌
- URL:
/brands/{id}/
- 方法:
DELETE
- 描述: 删除指定ID的品牌
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "删除成功", "data": null }
1.6 获取品牌产品列表
- URL:
/brands/{id}/products/
- 方法:
GET
- 描述: 获取指定品牌下的所有产品
- 请求参数: 无
- 响应数据: 返回产品列表
1.7 获取品牌活动列表
- URL:
/brands/{id}/campaigns/
- 方法:
GET
- 描述: 获取指定品牌下的所有活动
- 请求参数: 无
- 响应数据: 返回活动列表
1.8 获取品牌知识库ID列表
- URL:
/brands/{id}/dataset_ids/
- 方法:
GET
- 描述: 获取品牌的所有知识库ID
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "成功", "data": { "dataset_id_list": [] } }
2. 产品管理 (Products)
2.1 获取产品列表
- URL:
/products/
- 方法:
GET
- 描述: 获取所有产品的列表
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "成功", "data": [ { "id": "uuid字符串", "brand": "品牌ID", "brand_name": "品牌名称", "name": "产品名称", "description": "产品描述", "image_url": "产品图片链接", "pid": "产品ID", "commission_rate": "0.00", "open_collab": "0.00", "available_samples": 0, "sales_price_min": "0.00", "sales_price_max": "0.00", "stock": 0, "items_sold": 0, "product_rating": "0.0", "reviews_count": 0, "collab_creators": 0, "tiktok_shop": false, "dataset_id": "知识库ID", "external_id": "外部ID", "created_at": "创建时间", "updated_at": "更新时间", "is_active": true } ] }
2.2 创建产品
- URL:
/products/
- 方法:
POST
- 描述: 创建一个新的产品,会自动更新关联品牌的dataset_id_list
- 请求参数:
{ "brand": "品牌ID", // 必填 "name": "产品名称", // 必填 "description": "产品描述", // 可选 "image_url": "产品图片链接", // 可选 "pid": "产品ID", // 可选 "commission_rate": "0.00", // 可选 "open_collab": "0.00", // 可选 "available_samples": 0, // 可选 "sales_price_min": "0.00", // 可选 "sales_price_max": "0.00", // 可选 "stock": 0, // 可选 "items_sold": 0, // 可选 "product_rating": "0.0", // 可选 "reviews_count": 0, // 可选 "collab_creators": 0, // 可选 "tiktok_shop": false, // 可选 "dataset_id": "知识库ID", // 必填 "external_id": "外部ID", // 可选 "is_active": true // 可选 }
- 响应数据: 返回创建的产品信息
2.3 获取产品详情
- URL:
/products/{id}/
- 方法:
GET
- 描述: 获取指定ID的产品详细信息
- 请求参数: 无
- 响应数据: 返回产品详情
2.4 更新产品
- URL:
/products/{id}/
- 方法:
PUT
/PATCH
- 描述: 更新指定ID的产品信息,会自动更新关联品牌的dataset_id_list
- 请求参数: 同创建产品
- 响应数据: 返回更新后的产品信息
2.5 删除产品
- URL:
/products/{id}/
- 方法:
DELETE
- 描述: 软删除指定ID的产品,并从品牌的dataset_id_list中移除对应的ID
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "删除成功", "data": null }
3. 活动管理 (Campaigns)
3.1 获取活动列表
- URL:
/campaigns/
- 方法:
GET
- 描述: 获取所有活动的列表
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "成功", "data": [ { "id": "uuid字符串", "brand": "品牌ID", "brand_name": "品牌名称", "name": "活动名称", "description": "活动描述", "image_url": "活动图片链接", "service": "服务类型", "creator_type": "创作者类型", "creator_level": "创作者等级", "creator_category": "创作者分类", "creators_count": 0, "gmv": "GMV范围", "followers": "粉丝数范围", "views": "浏览量范围", "budget": "预算范围", "link_product": ["产品ID1", "产品ID2"], "link_product_details": [产品详情对象数组], "start_date": "开始日期", "end_date": "结束日期", "dataset_id": "知识库ID", "external_id": "外部ID", "created_at": "创建时间", "updated_at": "更新时间", "is_active": true } ] }
3.2 创建活动
- URL:
/campaigns/
- 方法:
POST
- 描述: 创建一个新的活动,会自动更新关联品牌的dataset_id_list
- 请求参数:
{ "brand": "品牌ID", // 必填 "name": "活动名称", // 必填 "description": "活动描述", // 可选 "image_url": "活动图片链接", // 可选 "service": "服务类型", // 可选 "creator_type": "创作者类型", // 可选 "creator_level": "创作者等级", // 可选 "creator_category": "创作者分类", // 可选 "creators_count": 0, // 可选 "gmv": "GMV范围", // 可选 "followers": "粉丝数范围", // 可选 "views": "浏览量范围", // 可选 "budget": "预算范围", // 可选 "link_product": ["产品ID1"], // 可选 "start_date": "开始日期", // 可选 "end_date": "结束日期", // 可选 "dataset_id": "知识库ID", // 必填 "external_id": "外部ID", // 可选 "is_active": true // 可选 }
- 响应数据: 返回创建的活动信息
3.3 获取活动详情
- URL:
/campaigns/{id}/
- 方法:
GET
- 描述: 获取指定ID的活动详细信息
- 请求参数: 无
- 响应数据: 返回活动详情
3.4 更新活动
- URL:
/campaigns/{id}/
- 方法:
PUT
/PATCH
- 描述: 更新指定ID的活动信息,会自动更新关联品牌的dataset_id_list
- 请求参数: 同创建活动
- 响应数据: 返回更新后的活动信息
3.5 删除活动
- URL:
/campaigns/{id}/
- 方法:
DELETE
- 描述: 软删除指定ID的活动,并从品牌的dataset_id_list中移除对应的ID
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "删除成功", "data": null }
3.6 获取Token信息
- URL:
/campaigns/token-info/
- 方法:
GET
- 描述: 获取当前用户的token信息和WebSocket URL示例
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "成功", "data": { "user_id": 1, "email": "user@example.com", "token": "token字符串", "token_expired_at": "过期时间", "websocket_examples": { "活动状态WebSocket": "ws://example.com/ws/campaigns/1/status/?token=token字符串", "活动产品状态WebSocket": "ws://example.com/ws/campaigns/1/products/123/status/?token=token字符串" } } }
3.7 添加产品到活动
- URL:
/campaigns/{id}/add_product/
- 方法:
POST
- 描述: 将产品添加到活动中
- 请求参数:
{ "product_id": "产品ID" // 必填 }
- 响应数据:
{ "code": 200, "message": "产品添加成功", "data": null }
3.8 从活动中移除产品
- URL:
/campaigns/{id}/remove_product/
- 方法:
POST
- 描述: 从活动中移除产品
- 请求参数:
{ "product_id": "产品ID" // 必填 }
- 响应数据:
{ "code": 200, "message": "产品移除成功", "data": null }
3.9 获取活动达人列表
- URL:
/campaigns/{id}/creator_list/
- 方法:
GET
- 描述: 获取活动关联的达人列表,并启动状态轮询
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "成功", "data": { "campaign": { "name": "活动名称", "description": "活动描述", "image_url": "活动图片链接", "service": "服务类型", "creator_type": "创作者类型", "creator_level": "创作者等级", "creator_category": "创作者分类", "creators_count": 0, "gmv": "GMV范围", "followers": "粉丝数范围", "views": "浏览量范围", "budget": "预算范围", "start_date": "开始日期", "end_date": "结束日期", "status": "状态" }, "creators": [ { "name": "达人名称", "category": "达人分类", "followers": "粉丝数", "GMV Generated": "GMV", "Views Generated": "观看量", "Pricing": "价格", "Status": "状态" } ] } }
3.10 更新达人状态
- URL:
/campaigns/{id}/update_creator_status/
- 方法:
POST
- 描述: 手动更新达人状态
- 请求参数:
{ "creator_id": "达人ID", // 必填 "product_id": "产品ID" // 可选 }
- 响应数据: 返回更新后的达人列表
3.11 获取活动产品达人列表
- URL:
/campaigns/{id}/product_creators/
- 方法:
GET
- 描述: 根据活动ID和产品ID获取达人列表,并启动状态轮询
- 请求参数:
product_id
: 产品ID (可选)
- 响应数据:
{ "code": 200, "message": "成功", "data": { "campaign_id": "活动ID", "product_id": "产品ID", "product_name": "产品名称", "creators": [ { "creator_name": "达人名称", "category": "达人分类", "followers": "粉丝数", "gmv_generated": "GMV", "views_generated": "观看量", "pricing": "价格", "status": "状态" } ] } }
3.12 停止状态轮询
- URL:
/campaigns/stop-polling/
- 方法:
POST
- 描述: 停止指定活动或所有活动的状态轮询
- 请求参数:
{ "campaign_id": "活动ID" // 可选,不提供则停止所有轮询 }
- 响应数据:
{ "code": 200, "message": "已停止活动轮询", "data": null }
3.13 获取活动轮询列表
- URL:
/campaigns/active-pollings/
- 方法:
GET
- 描述: 获取当前正在运行的所有轮询任务信息
- 请求参数: 无
- 响应数据: 返回活动轮询列表
3.14 获取WebSocket连接URL
- URL:
/campaigns/{id}/websocket-url/
- 方法:
GET
- 描述: 获取带认证的WebSocket连接URL
- 请求参数:
product_id
: 产品ID (可选)
- 响应数据:
{ "code": 200, "message": "成功", "data": { "websocket_url": "ws://example.com/ws/campaigns/1/status/?token=token字符串" } }
4. 品牌聊天会话管理 (Chat Sessions)
4.1 获取聊天会话列表
- URL:
/chat-sessions/
- 方法:
GET
- 描述: 获取所有品牌聊天会话的列表
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "成功", "data": [ { "id": "uuid字符串", "brand": "品牌ID", "brand_name": "品牌名称", "session_id": "会话ID", "title": "会话标题", "dataset_id_list": [], "created_at": "创建时间", "updated_at": "更新时间", "is_active": true } ] }
4.2 创建聊天会话
- URL:
/chat-sessions/
- 方法:
POST
- 描述: 创建一个新的品牌聊天会话,如果未提供dataset_id_list,则使用品牌的dataset_id_list
- 请求参数:
{ "brand": "品牌ID", // 必填 "session_id": "会话ID", // 必填,唯一 "title": "会话标题", // 可选,默认"新对话" "dataset_id_list": [], // 可选,默认为品牌的dataset_id_list "is_active": true // 可选,默认true }
- 响应数据: 返回创建的聊天会话信息
4.3 获取聊天会话详情
- URL:
/chat-sessions/{id}/
- 方法:
GET
- 描述: 获取指定ID的聊天会话详细信息
- 请求参数: 无
- 响应数据: 返回聊天会话详情
4.4 更新聊天会话
- URL:
/chat-sessions/{id}/
- 方法:
PUT
/PATCH
- 描述: 更新指定ID的聊天会话信息
- 请求参数: 同创建聊天会话
- 响应数据: 返回更新后的聊天会话信息
4.5 删除聊天会话
- URL:
/chat-sessions/{id}/
- 方法:
DELETE
- 描述: 删除指定ID的聊天会话
- 请求参数: 无
- 响应数据:
{ "code": 200, "message": "删除成功", "data": null }
5. WebSocket接口
brands模块提供了WebSocket接口,用于实时获取活动和产品状态更新。
5.1 活动状态WebSocket
- URL:
ws://domain/ws/campaigns/{campaign_id}/status/?token={token}
- 描述: 接收指定活动的状态更新
5.2 活动产品状态WebSocket
- URL:
ws://domain/ws/campaigns/{campaign_id}/products/{product_id}/status/?token={token}
- 描述: 接收指定活动和产品组合的状态更新