465 lines
14 KiB
JSON
465 lines
14 KiB
JSON
{
|
||
"openapi": "3.0.0",
|
||
"info": {
|
||
"title": "药店销售预测系统API",
|
||
"description": "用于药店销售预测的RESTful API",
|
||
"version": "1.0.0",
|
||
"contact": {
|
||
"name": "API开发团队",
|
||
"email": "support@example.com"
|
||
}
|
||
},
|
||
"tags": [
|
||
{
|
||
"name": "数据管理",
|
||
"description": "数据上传和查询相关接口"
|
||
},
|
||
{
|
||
"name": "模型训练",
|
||
"description": "模型训练相关接口"
|
||
},
|
||
{
|
||
"name": "模型预测",
|
||
"description": "预测销售数据相关接口"
|
||
},
|
||
{
|
||
"name": "模型管理",
|
||
"description": "模型查询、导出和删除接口"
|
||
}
|
||
],
|
||
"paths": {
|
||
"/api/products": {
|
||
"get": {
|
||
"tags": ["数据管理"],
|
||
"summary": "获取所有产品列表",
|
||
"description": "返回系统中所有产品的ID和名称",
|
||
"responses": {
|
||
"200": {
|
||
"description": "成功获取产品列表",
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"status": {"type": "string"},
|
||
"data": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"properties": {
|
||
"product_id": {"type": "string"},
|
||
"product_name": {"type": "string"}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"500": {"description": "服务器内部错误"}
|
||
}
|
||
}
|
||
},
|
||
"/api/products/{product_id}": {
|
||
"get": {
|
||
"tags": ["数据管理"],
|
||
"summary": "获取单个产品详情",
|
||
"description": "返回指定产品ID的详细信息",
|
||
"parameters": [
|
||
{
|
||
"name": "product_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {"type": "string"},
|
||
"description": "产品ID,例如P001"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "成功获取产品详情"},
|
||
"404": {"description": "产品不存在"},
|
||
"500": {"description": "服务器内部错误"}
|
||
}
|
||
}
|
||
},
|
||
"/api/products/{product_id}/sales": {
|
||
"get": {
|
||
"tags": ["数据管理"],
|
||
"summary": "获取产品销售数据",
|
||
"description": "返回指定产品在特定日期范围内的销售数据",
|
||
"parameters": [
|
||
{
|
||
"name": "product_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {"type": "string"},
|
||
"description": "产品ID,例如P001"
|
||
},
|
||
{
|
||
"name": "start_date",
|
||
"in": "query",
|
||
"schema": {"type": "string"},
|
||
"description": "开始日期,格式为YYYY-MM-DD"
|
||
},
|
||
{
|
||
"name": "end_date",
|
||
"in": "query",
|
||
"schema": {"type": "string"},
|
||
"description": "结束日期,格式为YYYY-MM-DD"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "成功获取销售数据"},
|
||
"404": {"description": "产品不存在"},
|
||
"500": {"description": "服务器内部错误"}
|
||
}
|
||
}
|
||
},
|
||
"/api/data/upload": {
|
||
"post": {
|
||
"tags": ["数据管理"],
|
||
"summary": "上传销售数据",
|
||
"description": "上传新的销售数据文件(Excel格式)",
|
||
"requestBody": {
|
||
"content": {
|
||
"multipart/form-data": {
|
||
"schema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"file": {
|
||
"type": "string",
|
||
"format": "binary"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {"description": "数据上传成功"},
|
||
"400": {"description": "请求错误"},
|
||
"500": {"description": "服务器内部错误"}
|
||
}
|
||
}
|
||
},
|
||
"/api/training": {
|
||
"get": {
|
||
"tags": ["模型训练"],
|
||
"summary": "获取所有训练任务列表",
|
||
"description": "返回所有正在进行、已完成或失败的训练任务",
|
||
"responses": {
|
||
"200": {"description": "成功获取任务列表"}
|
||
}
|
||
},
|
||
"post": {
|
||
"tags": ["模型训练"],
|
||
"summary": "启动模型训练任务",
|
||
"description": "为指定产品启动一个新的模型训练任务",
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"product_id": {"type": "string", "example": "P001"},
|
||
"model_type": {"type": "string", "enum": ["mlstm", "transformer", "kan", "optimized_kan", "tcn", "xgboost"]},
|
||
"store_id": {"type": "string", "example": "S001"},
|
||
"epochs": {"type": "integer", "default": 50}
|
||
},
|
||
"required": ["product_id", "model_type"]
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {"description": "训练任务已启动"},
|
||
"400": {"description": "请求错误"}
|
||
}
|
||
}
|
||
},
|
||
"/api/training/{task_id}": {
|
||
"get": {
|
||
"tags": ["模型训练"],
|
||
"summary": "查询训练任务状态",
|
||
"description": "获取特定训练任务的当前状态和详情",
|
||
"parameters": [
|
||
{
|
||
"name": "task_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {"type": "string"},
|
||
"description": "训练任务ID"
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "成功获取任务状态"},
|
||
"404": {"description": "任务不存在"},
|
||
"500": {"description": "服务器内部错误"}
|
||
}
|
||
}
|
||
},
|
||
"/api/prediction": {
|
||
"post": {
|
||
"tags": ["模型预测"],
|
||
"summary": "使用模型进行预测",
|
||
"description": "使用指定模型预测未来销售数据",
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"product_id": {"type": "string"},
|
||
"model_type": {"type": "string", "enum": ["mlstm", "transformer", "kan", "optimized_kan", "tcn"]},
|
||
"store_id": {"type": "string"},
|
||
"version": {"type": "string"},
|
||
"future_days": {"type": "integer"},
|
||
"include_visualization": {"type": "boolean"},
|
||
"start_date": {"type": "string"}
|
||
},
|
||
"required": ["product_id", "model_type"]
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {"description": "预测成功"},
|
||
"400": {"description": "请求错误"},
|
||
"404": {"description": "产品或模型不存在"},
|
||
"500": {"description": "服务器内部错误"}
|
||
}
|
||
}
|
||
},
|
||
"/api/prediction/compare": {
|
||
"post": {
|
||
"tags": ["模型预测"],
|
||
"summary": "比较不同模型预测结果",
|
||
"description": "比较不同模型对同一产品的预测结果",
|
||
"requestBody": {
|
||
"required": true,
|
||
"content": {
|
||
"application/json": {
|
||
"schema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"product_id": {"type": "string"},
|
||
"model_types": {"type": "array", "items": {"type": "string"}},
|
||
"versions": {"type": "array", "items": {"type": "string"}},
|
||
"include_visualization": {"type": "boolean"}
|
||
},
|
||
"required": ["product_id", "model_types"]
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"responses": {
|
||
"200": {"description": "比较成功"},
|
||
"400": {"description": "请求错误"},
|
||
"404": {"description": "产品或模型不存在"},
|
||
"500": {"description": "服务器内部错误"}
|
||
}
|
||
}
|
||
},
|
||
"/api/prediction/history": {
|
||
"get": {
|
||
"tags": ["模型预测"],
|
||
"summary": "获取历史预测记录",
|
||
"responses": {
|
||
"200": {"description": "获取成功"}
|
||
}
|
||
}
|
||
},
|
||
"/api/prediction/history/{prediction_id}": {
|
||
"get": {
|
||
"tags": ["模型预测"],
|
||
"summary": "获取特定预测记录的详情",
|
||
"parameters": [
|
||
{
|
||
"name": "prediction_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {"type": "string"}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "获取成功"},
|
||
"404": {"description": "记录不存在"}
|
||
}
|
||
},
|
||
"delete": {
|
||
"tags": ["模型预测"],
|
||
"summary": "删除预测记录",
|
||
"parameters": [
|
||
{
|
||
"name": "prediction_id",
|
||
"in": "path",
|
||
"required": true,
|
||
"schema": {"type": "string"}
|
||
}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "删除成功"},
|
||
"404": {"description": "记录不存在"}
|
||
}
|
||
}
|
||
},
|
||
"/api/models": {
|
||
"get": {
|
||
"tags": ["模型管理"],
|
||
"summary": "获取模型列表",
|
||
"parameters": [
|
||
{"name": "product_id", "in": "query", "schema": {"type": "string"}},
|
||
{"name": "model_type", "in": "query", "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "获取成功"}
|
||
}
|
||
}
|
||
},
|
||
"/api/models/{model_id}": {
|
||
"get": {
|
||
"tags": ["模型管理"],
|
||
"summary": "获取模型详情",
|
||
"parameters": [
|
||
{"name": "model_id", "in": "path", "required": true, "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "获取成功"},
|
||
"404": {"description": "模型不存在"}
|
||
}
|
||
},
|
||
"delete": {
|
||
"tags": ["模型管理"],
|
||
"summary": "删除模型",
|
||
"parameters": [
|
||
{"name": "model_id", "in": "path", "required": true, "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "删除成功"},
|
||
"404": {"description": "模型不存在"}
|
||
}
|
||
}
|
||
},
|
||
"/api/models/{model_id}/export": {
|
||
"get": {
|
||
"tags": ["模型管理"],
|
||
"summary": "导出模型",
|
||
"parameters": [
|
||
{"name": "model_id", "in": "path", "required": true, "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "模型文件下载"},
|
||
"404": {"description": "模型不存在"}
|
||
}
|
||
}
|
||
},
|
||
"/api/model_types": {
|
||
"get": {
|
||
"tags": ["模型管理"],
|
||
"summary": "获取系统支持的所有模型类型",
|
||
"responses": {
|
||
"200": {"description": "获取成功"}
|
||
}
|
||
}
|
||
},
|
||
"/api/models/{product_id}/{model_type}/versions": {
|
||
"get": {
|
||
"tags": ["模型管理"],
|
||
"summary": "获取模型版本列表",
|
||
"parameters": [
|
||
{"name": "product_id", "in": "path", "required": true, "schema": {"type": "string"}},
|
||
{"name": "model_type", "in": "path", "required": true, "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "获取成功"}
|
||
}
|
||
}
|
||
},
|
||
"/api/stores": {
|
||
"get": {
|
||
"tags": ["数据管理"],
|
||
"summary": "获取所有店铺列表",
|
||
"responses": {
|
||
"200": {"description": "获取成功"}
|
||
}
|
||
},
|
||
"post": {
|
||
"tags": ["数据管理"],
|
||
"summary": "创建新店铺",
|
||
"responses": {
|
||
"200": {"description": "创建成功"}
|
||
}
|
||
}
|
||
},
|
||
"/api/stores/{store_id}": {
|
||
"get": {
|
||
"tags": ["数据管理"],
|
||
"summary": "获取单个店铺信息",
|
||
"parameters": [
|
||
{"name": "store_id", "in": "path", "required": true, "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "获取成功"},
|
||
"404": {"description": "店铺不存在"}
|
||
}
|
||
},
|
||
"put": {
|
||
"tags": ["数据管理"],
|
||
"summary": "更新店铺信息",
|
||
"parameters": [
|
||
{"name": "store_id", "in": "path", "required": true, "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "更新成功"},
|
||
"404": {"description": "店铺不存在"}
|
||
}
|
||
},
|
||
"delete": {
|
||
"tags": ["数据管理"],
|
||
"summary": "删除店铺",
|
||
"parameters": [
|
||
{"name": "store_id", "in": "path", "required": true, "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "删除成功"},
|
||
"404": {"description": "店铺不存在"}
|
||
}
|
||
}
|
||
},
|
||
"/api/stores/{store_id}/products": {
|
||
"get": {
|
||
"tags": ["数据管理"],
|
||
"summary": "获取店铺的产品列表",
|
||
"parameters": [
|
||
{"name": "store_id", "in": "path", "required": true, "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "获取成功"}
|
||
}
|
||
}
|
||
},
|
||
"/api/stores/{store_id}/statistics": {
|
||
"get": {
|
||
"tags": ["数据管理"],
|
||
"summary": "获取店铺销售统计信息",
|
||
"parameters": [
|
||
{"name": "store_id", "in": "path", "required": true, "schema": {"type": "string"}}
|
||
],
|
||
"responses": {
|
||
"200": {"description": "获取成功"}
|
||
}
|
||
}
|
||
},
|
||
"/api/sales/data": {
|
||
"get": {
|
||
"tags": ["数据管理"],
|
||
"summary": "获取销售数据列表",
|
||
"responses": {
|
||
"200": {"description": "获取成功"}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} |