{ "openapi": "3.0.3", "info": { "title": "ValueFrontier API", "description": "价值前沿 - 股票投资分析平台完整API文档", "version": "1.0.0", "contact": { "name": "ValueFrontier", "url": "https://valuefrontier.cn" } }, "servers": [ { "url": "https://valuefrontier.cn", "description": "生产环境" } ], "tags": [ {"name": "认证", "description": "用户认证相关接口"}, {"name": "账户管理", "description": "用户账户信息管理"}, {"name": "自选股", "description": "自选股管理"}, {"name": "投资计划", "description": "投资计划与复盘"}, {"name": "事件", "description": "投资事件相关"}, {"name": "帖子评论", "description": "社区帖子与评论"}, {"name": "股票行情", "description": "股票实时行情"}, {"name": "股票信息", "description": "股票基本信息"}, {"name": "财务报表", "description": "财务数据查询"}, {"name": "市场数据", "description": "市场行情与统计"}, {"name": "财经日历", "description": "财经事件日历"}, {"name": "行业分类", "description": "行业分类查询"}, {"name": "概念板块", "description": "概念板块数据"}, {"name": "公司分析", "description": "公司深度分析"}, {"name": "模拟交易", "description": "模拟盘交易"}, {"name": "会员订阅", "description": "订阅与支付"} ], "paths": { "/api/auth/session": { "get": { "tags": ["认证"], "summary": "获取当前登录用户信息", "responses": { "200": {"description": "成功", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserSession"}}}} } } }, "/api/auth/login": { "post": { "tags": ["认证"], "summary": "用户登录", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "required": ["password"], "properties": { "username": {"type": "string", "description": "用户名/手机号/邮箱"}, "email": {"type": "string"}, "phone": {"type": "string"}, "password": {"type": "string"} } } } } }, "responses": { "200": {"description": "登录成功"}, "401": {"description": "密码错误"}, "404": {"description": "用户不存在"} } } }, "/api/auth/logout": { "post": { "tags": ["认证"], "summary": "用户登出", "responses": {"200": {"description": "已登出"}} } }, "/api/auth/register": { "post": { "tags": ["认证"], "summary": "用户注册(用户名+邮箱)", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "required": ["username", "email", "password"], "properties": { "username": {"type": "string"}, "email": {"type": "string"}, "password": {"type": "string"} } } } } }, "responses": { "201": {"description": "注册成功"}, "400": {"description": "用户名或邮箱已存在"} } } }, "/api/auth/send-verification-code": { "post": { "tags": ["认证"], "summary": "发送验证码(手机/邮箱)", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["credential", "type"], "properties": { "credential": {"type": "string", "description": "手机号或邮箱"}, "type": {"type": "string", "enum": ["phone", "email"]}, "purpose": {"type": "string", "enum": ["login", "register"], "default": "login"} } } } } }, "responses": {"200": {"description": "验证码已发送"}} } }, "/api/auth/login-with-code": { "post": { "tags": ["认证"], "summary": "验证码登录", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["credential", "verification_code", "login_type"], "properties": { "credential": {"type": "string"}, "verification_code": {"type": "string"}, "login_type": {"type": "string", "enum": ["phone", "email"]} } } } } }, "responses": {"200": {"description": "登录成功"}} } }, "/api/auth/register/phone": { "post": { "tags": ["认证"], "summary": "手机号注册", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["phone", "code", "password", "username"], "properties": { "phone": {"type": "string"}, "code": {"type": "string"}, "password": {"type": "string"}, "username": {"type": "string"} } } } } }, "responses": {"201": {"description": "注册成功"}} } }, "/api/auth/register/email": { "post": { "tags": ["认证"], "summary": "邮箱注册", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["email", "code", "password", "username"], "properties": { "email": {"type": "string"}, "code": {"type": "string"}, "password": {"type": "string"}, "username": {"type": "string"} } } } } }, "responses": {"201": {"description": "注册成功"}} } }, "/api/auth/wechat/qrcode": { "get": { "tags": ["认证"], "summary": "获取微信登录二维码", "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": { "type": "object", "properties": { "auth_url": {"type": "string"}, "session_id": {"type": "string"}, "expires_in": {"type": "integer"} } } } } } } } }, "/api/auth/wechat/check": { "post": { "tags": ["认证"], "summary": "检查微信扫码状态", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["session_id"], "properties": {"session_id": {"type": "string"}} } } } }, "responses": {"200": {"description": "成功"}} } }, "/api/account/change-password": { "post": { "tags": ["账户管理"], "summary": "修改密码", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["newPassword"], "properties": { "currentPassword": {"type": "string"}, "newPassword": {"type": "string"}, "isFirstSet": {"type": "boolean"} } } } } }, "responses": {"200": {"description": "密码修改成功"}} } }, "/api/account/password-status": { "get": { "tags": ["账户管理"], "summary": "获取密码状态", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} } }, "/api/account/profile-completeness": { "get": { "tags": ["账户管理"], "summary": "获取资料完整度", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} } }, "/api/account/phone/send-code": { "post": { "tags": ["账户管理"], "summary": "发送绑定手机验证码", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["phone"], "properties": {"phone": {"type": "string"}} } } } }, "responses": {"200": {"description": "验证码已发送"}} } }, "/api/account/phone/bind": { "post": { "tags": ["账户管理"], "summary": "绑定手机号", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["phone", "code"], "properties": { "phone": {"type": "string"}, "code": {"type": "string"} } } } } }, "responses": {"200": {"description": "绑定成功"}} } }, "/api/account/phone/unbind": { "post": { "tags": ["账户管理"], "summary": "解绑手机号", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "解绑成功"}} } }, "/api/account/email/send-bind-code": { "post": { "tags": ["账户管理"], "summary": "发送绑定邮箱验证码", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["email"], "properties": {"email": {"type": "string"}} } } } }, "responses": {"200": {"description": "验证码已发送"}} } }, "/api/account/email/bind": { "post": { "tags": ["账户管理"], "summary": "绑定邮箱", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["email", "code"], "properties": { "email": {"type": "string"}, "code": {"type": "string"} } } } } }, "responses": {"200": {"description": "绑定成功"}} } }, "/api/account/email/unbind": { "post": { "tags": ["账户管理"], "summary": "解绑邮箱", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "解绑成功"}} } }, "/api/account/wechat/qrcode": { "get": { "tags": ["账户管理"], "summary": "获取微信绑定二维码", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} } }, "/api/account/wechat/unbind": { "post": { "tags": ["账户管理"], "summary": "解绑微信", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "解绑成功"}} } }, "/api/account/watchlist": { "get": { "tags": ["自选股"], "summary": "获取自选股列表", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} }, "post": { "tags": ["自选股"], "summary": "添加自选股", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["stock_code"], "properties": { "stock_code": {"type": "string", "description": "支持多种格式:600519、600519.SH、贵州茅台(600519)"}, "stock_name": {"type": "string"} } } } } }, "responses": {"200": {"description": "添加成功"}} } }, "/api/account/watchlist/{stock_code}": { "delete": { "tags": ["自选股"], "summary": "删除自选股", "security": [{"cookieAuth": []}], "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "删除成功"}} } }, "/api/account/watchlist/realtime": { "get": { "tags": ["自选股"], "summary": "获取自选股实时行情", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} } }, "/api/account/investment-plans": { "get": { "tags": ["投资计划"], "summary": "获取投资计划列表", "security": [{"cookieAuth": []}], "parameters": [ {"name": "type", "in": "query", "schema": {"type": "string", "enum": ["plan", "review"]}}, {"name": "start_date", "in": "query", "schema": {"type": "string", "format": "date"}}, {"name": "end_date", "in": "query", "schema": {"type": "string", "format": "date"}} ], "responses": {"200": {"description": "成功"}} }, "post": { "tags": ["投资计划"], "summary": "创建投资计划", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["date", "title", "type"], "properties": { "date": {"type": "string", "format": "date"}, "title": {"type": "string"}, "content": {"type": "string"}, "type": {"type": "string", "enum": ["plan", "review"]}, "stocks": {"type": "array", "items": {"type": "string"}}, "tags": {"type": "array", "items": {"type": "string"}}, "status": {"type": "string", "default": "active"} } } } } }, "responses": {"200": {"description": "创建成功"}} } }, "/api/account/investment-plans/{plan_id}": { "put": { "tags": ["投资计划"], "summary": "更新投资计划", "security": [{"cookieAuth": []}], "parameters": [ {"name": "plan_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "date": {"type": "string", "format": "date"}, "title": {"type": "string"}, "content": {"type": "string"}, "stocks": {"type": "array", "items": {"type": "string"}}, "tags": {"type": "array", "items": {"type": "string"}}, "status": {"type": "string"} } } } } }, "responses": {"200": {"description": "更新成功"}} }, "delete": { "tags": ["投资计划"], "summary": "删除投资计划", "security": [{"cookieAuth": []}], "parameters": [ {"name": "plan_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "删除成功"}} } }, "/api/account/events/following": { "get": { "tags": ["投资计划"], "summary": "获取关注的事件", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} } }, "/api/account/future-events/following": { "get": { "tags": ["投资计划"], "summary": "获取关注的未来事件", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} } }, "/api/account/calendar/events": { "get": { "tags": ["投资计划"], "summary": "获取日历事件(投资计划+关注的未来事件)", "security": [{"cookieAuth": []}], "parameters": [ {"name": "date", "in": "query", "schema": {"type": "string", "format": "date"}}, {"name": "year", "in": "query", "schema": {"type": "integer"}}, {"name": "month", "in": "query", "schema": {"type": "integer"}}, {"name": "start_date", "in": "query", "schema": {"type": "string", "format": "date"}}, {"name": "end_date", "in": "query", "schema": {"type": "string", "format": "date"}} ], "responses": {"200": {"description": "成功"}} }, "post": { "tags": ["投资计划"], "summary": "创建日历事件", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["title", "event_date"], "properties": { "title": {"type": "string"}, "event_date": {"type": "string", "format": "date"}, "type": {"type": "string", "default": "plan"}, "description": {"type": "string"}, "stocks": {"type": "array", "items": {"type": "string"}} } } } } }, "responses": {"200": {"description": "创建成功"}} } }, "/api/account/calendar/events/{event_id}": { "delete": { "tags": ["投资计划"], "summary": "删除日历事件", "security": [{"cookieAuth": []}], "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "删除成功"}} } }, "/api/events": { "get": { "tags": ["事件"], "summary": "获取事件列表", "parameters": [ {"name": "page", "in": "query", "schema": {"type": "integer", "default": 1}}, {"name": "per_page", "in": "query", "schema": {"type": "integer", "default": 10}}, {"name": "type", "in": "query", "schema": {"type": "string"}}, {"name": "status", "in": "query", "schema": {"type": "string", "default": "active"}}, {"name": "importance", "in": "query", "schema": {"type": "string"}}, {"name": "sort", "in": "query", "schema": {"type": "string", "enum": ["hot", "new", "returns", "importance", "view_count"]}}, {"name": "start_date", "in": "query", "schema": {"type": "string"}}, {"name": "end_date", "in": "query", "schema": {"type": "string"}}, {"name": "recent_days", "in": "query", "schema": {"type": "integer"}}, {"name": "q", "in": "query", "schema": {"type": "string"}, "description": "搜索关键词"}, {"name": "industry_classification", "in": "query", "schema": {"type": "string"}}, {"name": "industry_code", "in": "query", "schema": {"type": "string"}} ], "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/EventsResponse"} } } } } } }, "/api/events/hot": { "get": { "tags": ["事件"], "summary": "获取热点事件", "parameters": [ {"name": "days", "in": "query", "schema": {"type": "integer", "default": 3}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 4}} ], "responses": {"200": {"description": "成功"}} } }, "/api/events/keywords/popular": { "get": { "tags": ["事件"], "summary": "获取热门关键词", "parameters": [ {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 20}} ], "responses": {"200": {"description": "成功"}} } }, "/api/events/{event_id}": { "get": { "tags": ["事件"], "summary": "获取事件详情", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": { "200": { "description": "成功", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/EventDetail"} } } } } } }, "/api/events/{event_id}/stocks": { "get": { "tags": ["事件"], "summary": "获取事件相关股票(需要Pro订阅)", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": { "200": {"description": "成功"}, "403": {"description": "需要Pro订阅"} } }, "post": { "tags": ["事件"], "summary": "添加相关股票", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["stock_code", "relation_desc"], "properties": { "stock_code": {"type": "string"}, "stock_name": {"type": "string"}, "sector": {"type": "string"}, "relation_desc": {"type": "string"}, "correlation": {"type": "number"}, "momentum": {"type": "string"} } } } } }, "responses": {"200": {"description": "添加成功"}} } }, "/api/events/{event_id}/concepts": { "get": { "tags": ["事件"], "summary": "获取相关概念(需要Pro订阅)", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": { "200": {"description": "成功"}, "403": {"description": "需要Pro订阅"} } } }, "/api/events/{event_id}/historical": { "get": { "tags": ["事件"], "summary": "获取历史事件对比", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/historical-events/{event_id}/stocks": { "get": { "tags": ["事件"], "summary": "获取历史事件相关股票", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/events/{event_id}/expectation-score": { "get": { "tags": ["事件"], "summary": "获取超预期得分", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/events/{event_id}/follow": { "post": { "tags": ["事件"], "summary": "关注/取消关注事件", "security": [{"cookieAuth": []}], "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/events/{event_id}/transmission": { "get": { "tags": ["事件"], "summary": "获取传导链分析(需要Max订阅)", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": { "200": {"description": "成功"}, "403": {"description": "需要Max订阅"} } } }, "/api/events/{event_id}/sankey-data": { "get": { "tags": ["事件"], "summary": "获取桑基图数据", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/events/{event_id}/chain-analysis": { "get": { "tags": ["事件"], "summary": "获取产业链分析", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/events/{event_id}/chain-node/{node_id}": { "get": { "tags": ["事件"], "summary": "获取链节点详情", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}}, {"name": "node_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/events/{event_id}/posts": { "get": { "tags": ["帖子评论"], "summary": "获取事件帖子列表", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}}, {"name": "sort", "in": "query", "schema": {"type": "string", "enum": ["latest", "hot"], "default": "latest"}}, {"name": "page", "in": "query", "schema": {"type": "integer", "default": 1}}, {"name": "per_page", "in": "query", "schema": {"type": "integer", "default": 20}} ], "responses": {"200": {"description": "成功"}} }, "post": { "tags": ["帖子评论"], "summary": "创建帖子", "security": [{"cookieAuth": []}], "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["content"], "properties": { "title": {"type": "string"}, "content": {"type": "string"}, "content_type": {"type": "string", "default": "text"} } } } } }, "responses": {"200": {"description": "发布成功"}} } }, "/api/posts/{post_id}/comments": { "get": { "tags": ["帖子评论"], "summary": "获取帖子评论", "parameters": [ {"name": "post_id", "in": "path", "required": true, "schema": {"type": "integer"}}, {"name": "sort", "in": "query", "schema": {"type": "string", "enum": ["latest", "hot"]}} ], "responses": {"200": {"description": "成功"}} }, "post": { "tags": ["帖子评论"], "summary": "发表评论", "security": [{"cookieAuth": []}], "parameters": [ {"name": "post_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["content"], "properties": { "content": {"type": "string"}, "parent_id": {"type": "integer", "description": "回复的评论ID"} } } } } }, "responses": {"200": {"description": "评论成功"}} } }, "/api/posts/{post_id}/like": { "post": { "tags": ["帖子评论"], "summary": "点赞/取消点赞帖子", "security": [{"cookieAuth": []}], "parameters": [ {"name": "post_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/comments/{comment_id}/like": { "post": { "tags": ["帖子评论"], "summary": "点赞评论", "security": [{"cookieAuth": []}], "parameters": [ {"name": "comment_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/posts/{post_id}": { "delete": { "tags": ["帖子评论"], "summary": "删除帖子", "security": [{"cookieAuth": []}], "parameters": [ {"name": "post_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "删除成功"}} } }, "/api/comments/{comment_id}": { "delete": { "tags": ["帖子评论"], "summary": "删除评论", "security": [{"cookieAuth": []}], "parameters": [ {"name": "comment_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "删除成功"}} } }, "/api/stocks/search": { "get": { "tags": ["股票信息"], "summary": "搜索股票", "parameters": [ {"name": "q", "in": "query", "required": true, "schema": {"type": "string"}, "description": "股票代码/名称/拼音首字母"}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 20}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/kline": { "get": { "tags": ["股票行情"], "summary": "获取K线数据", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "type", "in": "query", "schema": {"type": "string", "enum": ["minute", "daily", "timeline"], "default": "minute"}}, {"name": "event_time", "in": "query", "schema": {"type": "string", "format": "date-time"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/latest-minute": { "get": { "tags": ["股票行情"], "summary": "获取最新分钟数据", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/forecast-report": { "get": { "tags": ["股票信息"], "summary": "获取盈利预测报告", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/basic-info": { "get": { "tags": ["股票信息"], "summary": "获取股票基本信息", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/announcements": { "get": { "tags": ["股票信息"], "summary": "获取公告列表", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 50}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/disclosure-schedule": { "get": { "tags": ["股票信息"], "summary": "获取财报预披露时间", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/actual-control": { "get": { "tags": ["股票信息"], "summary": "获取实际控制人", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/concentration": { "get": { "tags": ["股票信息"], "summary": "获取股权集中度", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/management": { "get": { "tags": ["股票信息"], "summary": "获取管理层信息", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "active_only", "in": "query", "schema": {"type": "boolean", "default": true}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/top-circulation-shareholders": { "get": { "tags": ["股票信息"], "summary": "获取十大流通股东", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 10}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/top-shareholders": { "get": { "tags": ["股票信息"], "summary": "获取十大股东", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 10}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/branches": { "get": { "tags": ["股票信息"], "summary": "获取分支机构", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/{stock_code}/patents": { "get": { "tags": ["股票信息"], "summary": "获取专利信息", "parameters": [ {"name": "stock_code", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 50}}, {"name": "type", "in": "query", "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/stock/quotes": { "get": { "tags": ["股票行情"], "summary": "获取股票报价(GET)", "parameters": [ {"name": "codes", "in": "query", "required": true, "schema": {"type": "string"}, "description": "逗号分隔的股票代码"}, {"name": "event_time", "in": "query", "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} }, "post": { "tags": ["股票行情"], "summary": "获取股票报价(POST)", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["codes"], "properties": { "codes": {"type": "array", "items": {"type": "string"}}, "event_time": {"type": "string"} } } } } }, "responses": {"200": {"description": "成功"}} } }, "/api/index/{index_code}/kline": { "get": { "tags": ["股票行情"], "summary": "获取指数K线", "parameters": [ {"name": "index_code", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "type", "in": "query", "schema": {"type": "string", "enum": ["minute", "daily", "timeline"]}}, {"name": "event_time", "in": "query", "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/financial/stock-info/{seccode}": { "get": { "tags": ["财务报表"], "summary": "获取财务摘要", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/financial/balance-sheet/{seccode}": { "get": { "tags": ["财务报表"], "summary": "获取资产负债表", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 12}} ], "responses": {"200": {"description": "成功"}} } }, "/api/financial/income-statement/{seccode}": { "get": { "tags": ["财务报表"], "summary": "获取利润表", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 12}} ], "responses": {"200": {"description": "成功"}} } }, "/api/financial/cashflow/{seccode}": { "get": { "tags": ["财务报表"], "summary": "获取现金流量表", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 12}} ], "responses": {"200": {"description": "成功"}} } }, "/api/financial/financial-metrics/{seccode}": { "get": { "tags": ["财务报表"], "summary": "获取财务指标", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 12}} ], "responses": {"200": {"description": "成功"}} } }, "/api/financial/main-business/{seccode}": { "get": { "tags": ["财务报表"], "summary": "获取主营业务构成", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "periods", "in": "query", "schema": {"type": "integer", "default": 4}} ], "responses": {"200": {"description": "成功"}} } }, "/api/financial/forecast/{seccode}": { "get": { "tags": ["财务报表"], "summary": "获取业绩预告", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/financial/industry-rank/{seccode}": { "get": { "tags": ["财务报表"], "summary": "获取行业排名", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 4}} ], "responses": {"200": {"description": "成功"}} } }, "/api/financial/comparison/{seccode}": { "get": { "tags": ["财务报表"], "summary": "获取报告期对比", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "periods", "in": "query", "schema": {"type": "integer", "default": 8}} ], "responses": {"200": {"description": "成功"}} } }, "/api/market/trade/{seccode}": { "get": { "tags": ["市场数据"], "summary": "获取交易数据(日K)", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "days", "in": "query", "schema": {"type": "integer", "default": 60}}, {"name": "end_date", "in": "query", "schema": {"type": "string", "format": "date"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/market/funding/{seccode}": { "get": { "tags": ["市场数据"], "summary": "获取融资融券数据", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "days", "in": "query", "schema": {"type": "integer", "default": 30}} ], "responses": {"200": {"description": "成功"}} } }, "/api/market/bigdeal/{seccode}": { "get": { "tags": ["市场数据"], "summary": "获取大宗交易", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "days", "in": "query", "schema": {"type": "integer", "default": 30}} ], "responses": {"200": {"description": "成功"}} } }, "/api/market/unusual/{seccode}": { "get": { "tags": ["市场数据"], "summary": "获取龙虎榜数据", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "days", "in": "query", "schema": {"type": "integer", "default": 30}} ], "responses": {"200": {"description": "成功"}} } }, "/api/market/pledge/{seccode}": { "get": { "tags": ["市场数据"], "summary": "获取股权质押", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/market/summary/{seccode}": { "get": { "tags": ["市场数据"], "summary": "获取市场数据汇总", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/market/heatmap": { "get": { "tags": ["市场数据"], "summary": "获取市场热力图", "parameters": [ {"name": "date", "in": "query", "schema": {"type": "string", "format": "date"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 500}} ], "responses": {"200": {"description": "成功"}} } }, "/api/market/statistics": { "get": { "tags": ["市场数据"], "summary": "获取市场统计数据", "parameters": [ {"name": "date", "in": "query", "schema": {"type": "string", "format": "date"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/market/rise-analysis/{seccode}": { "get": { "tags": ["市场数据"], "summary": "获取涨幅分析", "parameters": [ {"name": "seccode", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "start_date", "in": "query", "schema": {"type": "string", "format": "date"}}, {"name": "end_date", "in": "query", "schema": {"type": "string", "format": "date"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/v1/calendar/event-counts": { "get": { "tags": ["财经日历"], "summary": "获取日历事件数量统计", "parameters": [ {"name": "year", "in": "query", "schema": {"type": "integer"}}, {"name": "month", "in": "query", "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/v1/calendar/events": { "get": { "tags": ["财经日历"], "summary": "获取日历事件列表", "parameters": [ {"name": "date", "in": "query", "required": true, "schema": {"type": "string", "format": "date"}}, {"name": "type", "in": "query", "schema": {"type": "string", "default": "all"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/v1/calendar/events/{event_id}": { "get": { "tags": ["财经日历"], "summary": "获取日历事件详情", "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/v1/calendar/events/{event_id}/follow": { "post": { "tags": ["财经日历"], "summary": "关注/取消关注未来事件", "security": [{"cookieAuth": []}], "parameters": [ {"name": "event_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/classifications": { "get": { "tags": ["行业分类"], "summary": "获取所有行业分类系统", "responses": {"200": {"description": "成功"}} } }, "/api/levels": { "get": { "tags": ["行业分类"], "summary": "获取行业层级数据", "parameters": [ {"name": "classification", "in": "query", "required": true, "schema": {"type": "string"}}, {"name": "level", "in": "query", "required": true, "schema": {"type": "integer", "minimum": 1, "maximum": 4}}, {"name": "level1_name", "in": "query", "schema": {"type": "string"}}, {"name": "level2_name", "in": "query", "schema": {"type": "string"}}, {"name": "level3_name", "in": "query", "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/info": { "get": { "tags": ["行业分类"], "summary": "获取行业详细信息", "parameters": [ {"name": "classification", "in": "query", "required": true, "schema": {"type": "string"}}, {"name": "code", "in": "query", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/concepts/daily-top": { "get": { "tags": ["概念板块"], "summary": "获取每日涨幅靠前的概念", "parameters": [ {"name": "date", "in": "query", "schema": {"type": "string", "format": "date"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 6}} ], "responses": {"200": {"description": "成功"}} } }, "/api/company/comprehensive-analysis/{company_code}": { "get": { "tags": ["公司分析"], "summary": "获取公司综合分析", "parameters": [ {"name": "company_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/company/value-chain-analysis/{company_code}": { "get": { "tags": ["公司分析"], "summary": "获取产业链分析", "parameters": [ {"name": "company_code", "in": "path", "required": true, "schema": {"type": "string"}} ], "responses": {"200": {"description": "成功"}} } }, "/api/company/key-factors-timeline/{company_code}": { "get": { "tags": ["公司分析"], "summary": "获取关键因素和时间线", "parameters": [ {"name": "company_code", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "report_period", "in": "query", "schema": {"type": "string"}}, {"name": "event_limit", "in": "query", "schema": {"type": "integer", "default": 50}} ], "responses": {"200": {"description": "成功"}} } }, "/api/simulation/account": { "get": { "tags": ["模拟交易"], "summary": "获取模拟账户", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} } }, "/api/simulation/positions": { "get": { "tags": ["模拟交易"], "summary": "获取持仓列表", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} } }, "/api/simulation/orders": { "get": { "tags": ["模拟交易"], "summary": "获取订单列表", "security": [{"cookieAuth": []}], "parameters": [ {"name": "status", "in": "query", "schema": {"type": "string"}}, {"name": "date", "in": "query", "schema": {"type": "string", "format": "date"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 50}} ], "responses": {"200": {"description": "成功"}} } }, "/api/simulation/place-order": { "post": { "tags": ["模拟交易"], "summary": "下单(支持7x24小时)", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["stock_code", "order_type", "order_qty"], "properties": { "stock_code": {"type": "string"}, "order_type": {"type": "string", "enum": ["BUY", "SELL"]}, "order_qty": {"type": "integer", "multipleOf": 100}, "price_type": {"type": "string", "default": "MARKET"} } } } } }, "responses": {"200": {"description": "下单成功"}} } }, "/api/simulation/cancel-order/{order_id}": { "post": { "tags": ["模拟交易"], "summary": "撤销订单", "security": [{"cookieAuth": []}], "parameters": [ {"name": "order_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "撤销成功"}} } }, "/api/simulation/transactions": { "get": { "tags": ["模拟交易"], "summary": "获取成交记录", "security": [{"cookieAuth": []}], "parameters": [ {"name": "date", "in": "query", "schema": {"type": "string", "format": "date"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "default": 100}} ], "responses": {"200": {"description": "成功"}} } }, "/api/simulation/t1-settlement": { "post": { "tags": ["模拟交易"], "summary": "手动触发T+1结算", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "结算成功"}} } }, "/api/simulation/daily-settlement": { "post": { "tags": ["模拟交易"], "summary": "手动触发日结算", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "结算成功"}} } }, "/api/simulation/reset": { "post": { "tags": ["模拟交易"], "summary": "重置模拟账户", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "重置成功"}} } }, "/api/subscription/plans": { "get": { "tags": ["会员订阅"], "summary": "获取订阅套餐", "responses": {"200": {"description": "成功"}} } }, "/api/subscription/current": { "get": { "tags": ["会员订阅"], "summary": "获取当前订阅", "security": [{"cookieAuth": []}], "responses": {"200": {"description": "成功"}} } }, "/api/subscription/info": { "get": { "tags": ["会员订阅"], "summary": "获取订阅信息", "responses": {"200": {"description": "成功"}} } }, "/api/payment/create-order": { "post": { "tags": ["会员订阅"], "summary": "创建支付订单", "security": [{"cookieAuth": []}], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": ["plan_name", "billing_cycle"], "properties": { "plan_name": {"type": "string", "enum": ["pro", "max"]}, "billing_cycle": {"type": "string", "enum": ["monthly", "yearly"]} } } } } }, "responses": {"200": {"description": "订单创建成功"}} } }, "/api/payment/order/{order_id}/status": { "get": { "tags": ["会员订阅"], "summary": "查询订单状态", "security": [{"cookieAuth": []}], "parameters": [ {"name": "order_id", "in": "path", "required": true, "schema": {"type": "integer"}} ], "responses": {"200": {"description": "成功"}} } } }, "components": { "securitySchemes": { "cookieAuth": { "type": "apiKey", "in": "cookie", "name": "session", "description": "基于Session的Cookie认证" } }, "schemas": { "UserSession": { "type": "object", "properties": { "success": {"type": "boolean"}, "isAuthenticated": {"type": "boolean"}, "user": { "type": "object", "properties": { "id": {"type": "integer"}, "username": {"type": "string"}, "nickname": {"type": "string"}, "email": {"type": "string"}, "phone": {"type": "string"}, "avatar_url": {"type": "string"}, "subscription_type": {"type": "string", "enum": ["free", "pro", "max"]}, "subscription_status": {"type": "string"}, "is_subscription_active": {"type": "boolean"} } } } }, "EventsResponse": { "type": "object", "properties": { "success": {"type": "boolean"}, "data": { "type": "object", "properties": { "events": {"type": "array", "items": {"$ref": "#/components/schemas/EventSummary"}}, "pagination": { "type": "object", "properties": { "page": {"type": "integer"}, "per_page": {"type": "integer"}, "total": {"type": "integer"}, "pages": {"type": "integer"}, "has_prev": {"type": "boolean"}, "has_next": {"type": "boolean"} } } } } } }, "EventSummary": { "type": "object", "properties": { "id": {"type": "integer"}, "title": {"type": "string"}, "description": {"type": "string"}, "event_type": {"type": "string"}, "importance": {"type": "string", "enum": ["S", "A", "B", "C"]}, "status": {"type": "string"}, "hot_score": {"type": "number"}, "view_count": {"type": "integer"}, "trending_score": {"type": "number"}, "related_avg_chg": {"type": "number"}, "related_max_chg": {"type": "number"}, "created_at": {"type": "string", "format": "date-time"} } }, "EventDetail": { "type": "object", "properties": { "id": {"type": "integer"}, "title": {"type": "string"}, "description": {"type": "string"}, "event_type": {"type": "string"}, "status": {"type": "string"}, "importance": {"type": "string"}, "hot_score": {"type": "number"}, "view_count": {"type": "integer"}, "post_count": {"type": "integer"}, "follower_count": {"type": "integer"}, "keywords": {"type": "array", "items": {"type": "string"}}, "related_industries": {"type": "object"}, "related_avg_chg": {"type": "number"}, "related_max_chg": {"type": "number"}, "invest_score": {"type": "integer"}, "has_chain_analysis": {"type": "boolean"}, "is_following": {"type": "boolean"}, "created_at": {"type": "string", "format": "date-time"} } } } } }