# price-api **Repository Path**: IvanYue/price-api ## Basic Information - **Project Name**: price-api - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-20 - **Last Updated**: 2026-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电价 API (Price API) 基于 Flask 的电力市场节点电价查询服务。提供 RESTful API 查询 `lamda_data` 数据库中的电价曲线数据。 ## ✨ 功能特性 - **电价曲线查询**: 支持按省份、日期、市场模式(日前/实时)查询分时电价。 - **多环境配置**: 通过 YAML 文件管理开发/生产环境数据库配置。 - **TDD 驱动**: 完整的测试用例覆盖 (API/Service/Config)。 - **Docker Ready**: 易于容器化部署。 ## 📁 项目结构 ```text price-api/ ├── app/ # 核心业务代码 │ ├── api/ # REST 路由 (Blueprint) │ ├── config.py # 动态配置加载 │ ├── models/ # SQLAlchemy 数据模型 │ └── services/ # 业务逻辑层 ├── config/ # 环境配置 │ └── settings.yaml # 数据库连接配置 ├── tests/ # 测试用例 └── run.py # 启动入口 ``` ## 🚀 快速开始 ### 1. 环境准备 确保已安装 Python 3.8+ 和 MySQL。 ```bash # 安装依赖 pip install -r requirements.txt ``` ### 2. 配置数据库 编辑 `config/settings.yaml`,填入你的 MySQL 连接信息: ```yaml development: database: host: 127.0.0.1 port: 3306 user: root password: "YOUR_PASSWORD" # ⚠️ 请修改为实际密码 database: lamda_data ``` ### 3. 运行服务 ```bash python3 run.py ``` 服务默认运行在 `http://0.0.0.0:5000`。 ## 📡 API 文档 ### 获取电价曲线 - **URL**: `/api/v1/price-curve` - **Method**: `GET` - **Parameters**: - `area` (Required): 省份名称 (e.g., '安徽') - `date` (Required): 业务日期 (e.g., '2025-01-01') - `mode` (Optional): 市场模式,默认 '日前' (Options: '日前', '实时') **Response**: ```json { "status": "success", "count": 96, "data": [ { "time": "00:15", "price": 380.5, "unit": "元/兆瓦时", ... }, ... ] } ``` ## 🧪 测试 (TDD) 本项目严格遵循 TDD (Test-Driven Development) 流程。 ```bash # 运行所有测试 python3 -m pytest tests/ -v # 查看测试覆盖率 python3 -m pytest tests/ --cov=app --cov-report=term ``` ## 🐳 Docker 部署 (Optional) 构建镜像: ```bash docker build -t price-api . ``` 运行容器: ```bash docker run -p 5000:5000 price-api ``` ## 📝 开发规范 1. **配置安全**: 生产环境密码请勿硬编码,建议使用环境变量 `DB_PASSWORD` 覆盖 `settings.yaml`。 2. **代码风格**: 遵循 PEP 8,使用 `flake8` 检查。 ## 📅 Change Log - **v0.1.0**: - 初始版本发布 - 实现基础电价查询 API - 集成 TDD 测试流程