1654 lines
57 KiB
JSON
1654 lines
57 KiB
JSON
{
|
||
"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"}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} |