Files
vf_react/openapi.json
2025-10-15 11:49:55 +08:00

1654 lines
57 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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"}
}
}
}
}
}