接口文档
1.用户界面模块(UI)¶
1.1.获取仪表盘数据¶
允许已登录的用户获取投资组合与收益曲线等数据。
- URL:
/ui/dashboard
- Method:GET
- 需要登录:是
- 需要鉴权:是
依赖模块:¶
用户管理模块 (UM): 获取用户基础信息(如用户 ID、风险等级)。
数据处理模块 (DT): 获取投资数据(收益曲线、持仓分布等)。
请求参数:¶
无(通过JWT解析用户身份)
成功响应¶
条件:用户已登录且身份校验通过。
状态码:200 OK
响应示例:如下
{
"code": 0,
"data": {
"portfolio": [
{ "asset": "股票", "percentage": 60 },
{ "asset": "债券", "percentage": 30 },
{ "asset": "现金", "percentage": 10 }
],
"profit_curve": [
{ "date": "2024-01", "value": 1000 },
{ "date": "2024-02", "value": 1200 }
]
},
"message": "Success"
}
错误响应¶
条件:用户未登录或JWT无效或过期
状态码:401 Unauthorized
响应示例:
{
"code": 1,
"message": "未授权",
"data": {}
}
1.2.获取策略推荐报告¶
允许用户通过此接口接收投资策略报告。
- URL:
/ui/recommendations
- Method:
GET
- 需要登录:是
- 需要鉴权:是
依赖模块:¶
数据处理模块(DT)
请求参数:¶
无(通过JWT解析用户身份)
成功响应¶
条件:用户已登录,并且用户身份校验通过。
状态码:200 OK
响应示例:如下
{
"code": 0,
"data": {
"report_id": "REPORT_001",
"content": "基于您的风险等级(high),建议配置:股票 50%、债券 40%、现金 10%"
},
"message": "Success"
}
错误响应¶
条件:用户未登录或身份校验失败
状态码:401 Unauthorized
响应示例:
{
"code": 1,
"message": "未授权",
"data": {}
}
条件:用户未生成策略报告
状态码:404 Not Found
响应示例:
{
"code": 1,
"message": "尚未生成策略报告",
"data": {}
}
2.用户管理模块(UM)¶
2.1 用户注册¶
新用户通过此接口完成注册
- URL:
/user/register
- Method:
POST
- 需要登录:否
- 需要鉴权:否
请求参数¶
参数 | 类型 | 是否必须 | 约束 |
username | String | 是 | 1 到 255 个字符 |
password | String | 是 | 1 到 255 个字符 |
nickname | String | 是 | 1 到 255 个字符 |
String | 是 | 满足邮箱格式 | |
phone | String | 是 | 满足中国大陆手机号格式 |
请求示例¶
可以仅传递部分请求参数。
{
"username": "admin",
"password": "123456",
"email": "jerry@example.com",
"phone": "16666666666",
"nickname": "jerry"
}
成功响应¶
条件:请求参数合法,并且用户身份校验通过。
状态码:200 OK
响应示例:如下
{
"code": 0,
"message": "",
"data": {}
}
错误响应¶
条件:请求数据非法,例如 username 的长度过长。
状态码:400 BAD REQUEST
响应示例:
{
"code": 1,
"message": "参数不合法",
"data": {}
}
2.2 用户登录¶
- URL:
/user/login
- Method:
POST
- 需要登录:否
- 需要鉴权:否
请求参数¶
参数 | 类型 | 是否必须 | 约束 |
username |
String | 是 | 1 到 255 个字符 |
password |
String | 是 | 1 到 255 个字符 |
请求示例¶
{
"username": "admin",
"password": "123456"
}
成功响应¶
条件:请求参数合法,并且用户身份校验通过。
状态码:200 OK
响应示例:响应结果的data字段会存储一个token字符串,它的载荷部分包含用户的id
{
"code": 0,
"data": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTczODc2MjU0NCwianRpIjoiZDdmYTliZDAtZWI4MS00MDMxLWJlZTUtMzQ5ZjVjYTM0NmJmIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IjEiLCJuYmYiOjE3Mzg3NjI1NDQsImNzcmYiOiI0OTE2NzlhZS1jOWQwLTRjMWItODczNi0wN2I4MDBhNWQ2YWUiLCJleHAiOjE3Mzg3NjM0NDR9.EcjvKzvxaDT6RPOQ8ebPSf7IIJDjzpUp3rB9pEVYOaY",
"message": ""
}
错误响应¶
条件:请求数据非法
状态码:400 BAD REQUEST
响应示例:
{
"code": 1,
"message": "参数不合法",
"data": {}
}
条件:用户名或密码输入错误
状态码:401 Unauthorized
响应示例:
{
"code": 1,
"message": "用户名或密码不正确",
"data": {}
}
2.3 用户信息修改¶
允许已登录的用户修改个人信息。
- URL:
/user/modify
- Method:
PUT
- 需要登录:是
- 需要鉴权:是
请求参数¶
参数 | 类型 | 是否必须 | 约束 |
username | String | 是 | 1 到 255 个字符 |
password | String | 是 | 1 到 255 个字符 |
nickname | String | 是 | 1 到 255 个字符 |
String | 是 | 满足邮箱格式 | |
phone | String | 是 | 满足中国大陆手机号格式 |
请求示例¶
可以仅传递部分请求参数。
{
"password": "new_encrypted_abc123"
}
成功响应¶
条件:请求参数合法,并且用户身份校验通过。
状态码:200 OK
响应示例:如下
{
"code": 0,
"data": {},
"message": "信息更新成功"
}
错误响应¶
条件:请求数据非法,例如 username 的长度过长。
状态码:400 BAD REQUEST
响应示例:
{
"code": 1,
"message": "参数不合法",
"data": {}
}
条件:用户未登录或身份校验失败
状态码:401 Unauthorized
响应示例:
{
"code": 1,
"message": "用户未登录",
"data": {}
}
2.4 查询用户信息¶
允许已登录的用户查询个人信息。
- URL:
/user/query
- Method:
GET
- 需要登录:是
- 需要鉴权:是
请求参数¶
参数 | 类型 | 是否必须 | 约束 |
id | String | 是 | 合法的用户id |
请求示例¶
{
"id": "12345"
}
成功响应¶
条件:请求参数合法,并且用户身份校验通过。
状态码:200 OK
响应示例:如下
{
"code": 0,
"data": {
"id": "12345",
"username": "test_user",
"nickname": "test_nickname",
"email": "test@example.com",
"phone": "13800138000"
},
"message": "查询成功"
}
错误响应¶
条件:请求数据非法,例如 id 格式不正确。
状态码:400 BAD REQUEST
响应示例:
{
"code": 1,
"message": "参数不合法",
"data": {}
}
条件:用户未登录或身份校验失败
状态码:401 Unauthorized
响应示例:
{
"code": 1,
"message": "用户未登录",
"data": {}
}
2.5用户注销¶
允许已登录的用户注销账号。
- URL:
/user/delete
- Method:
DELETE
- 需要登录:是
- 需要鉴权:是
请求参数¶
参数 | 类型 | 是否必须 | 约束 |
id | String | 是 | 合法的用户id |
请求示例¶
{
"id": "12345"
}
成功响应¶
条件:请求参数合法,并且用户身份校验通过。
状态码:200 OK
响应示例:如下
{
"code": 0,
"message": "注销成功",
"data":{}
}
错误响应¶
条件:请求数据非法,例如 id 格式不正确。
状态码:400 BAD REQUEST
响应示例:
{
"code": 1,
"message": "参数不合法",
"data": {}
}
条件:用户未登录或身份校验失败
状态码:401 Unauthorized
响应示例:
{
"code": 1,
"message": "用户未登录",
"data": {}
}
3.数据隐私处理模块(PR)¶
3.1 提交风险评估问卷¶
允许已登录的用户通过该接口提交风险评估问卷。
- URL:
/privacy/risk-profile
- Method:
POST
- 需要登录:是
- 需要鉴权:是
请求参数¶
参数 | 类型 | 是否必须 | 约束 |
id | String | 是 | 合法的用户id |
questionnaire_data | JSON | 是 | 包含问卷问题以及对应的答案,如{"Q1":"A1"} |
请求示例¶
{
"id": "12345",
"questionnaire_data":{
"Q1":"A",
"Q2":"B"
}
}
成功响应¶
条件:请求参数合法,并且用户身份校验通过。
状态码:200 OK
响应示例:如下
{
"code": 0,
"data":{
"risk_level":high
}
"message": "风险评估完成",
}
错误响应¶
条件:请求数据非法,例如 questionnaire格式不正确。
状态码:400 BAD REQUEST
响应示例:
{
"code": 1,
"message": "参数不合法",
"data": {}
}
条件:用户未登录或身份校验失败
状态码:401 Unauthorized
响应示例:
{
"code": 1,
"message": "用户未登录",
"data": {}
}
4.数据处理模块(DT)¶
4.1 启动大语言模型训练¶
已登录的用户通过此接口调用AI引擎进行模型训练
- URL:
/data/LLM
- Method:
POST
- 需要登录:是
- 需要鉴权:是
请求参数¶
参数 | 类型 | 是否必须 | 约束 |
String | 是 | 合法的用户id | |
请求示例¶
{
}