本项目是一个基于Spring Boot + JPA的中小学学习搭子APP后端API,为中小学生提供寻找学习伙伴的平台功能。
服务地址: http://localhost:8080/api
API文档: http://localhost:8080/api/docs
数据存储方式: H2文件数据库(持久化存储)
./data/testdb.mv.db
jdbc:h2:file:./data/testdb
sa
接口地址: POST /api/users/register
功能描述: 创建新的学习搭子用户账户
请求参数:
{
"username": "xiaoming",
"password": "123456",
"grade": "初三"
}
参数说明:
username
(必填): 用户名,3-50个字符password
(必填): 密码,6个字符以上grade
(可选): 年级(如:小一、小二、小三、小四、小五、小六、初一、初二、初三、高一、高二、高三等)成功响应:
{
"code": 200,
"message": "注册成功",
"data": {
"userId": 1,
"username": "xiaoming",
"grade": "初三",
"avatarUrl": null,
"createTime": "2024-01-01T10:00:00",
"updateTime": "2024-01-01T10:00:00"
},
"timestamp": "2024-01-01T10:00:00"
}
错误响应:
{
"code": 400,
"message": "用户名已存在",
"data": null,
"timestamp": "2024-01-01T10:00:00"
}
接口地址: POST /api/users/login
功能描述: 验证学习搭子用户凭据并返回用户信息
请求参数:
{
"username": "xiaoming",
"password": "123456"
}
参数说明:
username
(必填): 用户名password
(必填): 密码成功响应:
{
"code": 200,
"message": "登录成功",
"data": {
"userId": 1,
"username": "xiaoming",
"grade": "初三",
"avatarUrl": "https://example.com/avatar/xiaoming.jpg",
"createTime": "2024-01-01T10:00:00",
"updateTime": "2024-01-01T10:00:00"
},
"timestamp": "2024-01-01T10:00:00"
}
错误响应:
{
"code": 401,
"message": "用户名或密码错误",
"data": null,
"timestamp": "2024-01-01T10:00:00"
}
接口地址: GET /api/users/{id}
功能描述: 根据用户ID获取学习搭子详细信息
请求参数:
id
(路径参数): 用户ID请求示例: GET /api/users/1
成功响应:
{
"code": 200,
"message": "success",
"data": {
"userId": 1,
"username": "xiaoming",
"grade": "初三",
"avatarUrl": "https://example.com/avatar/xiaoming.jpg",
"createTime": "2024-01-01T10:00:00",
"updateTime": "2024-01-01T10:00:00"
},
"timestamp": "2024-01-01T10:00:00"
}
错误响应:
{
"code": 404,
"message": "用户不存在",
"data": null,
"timestamp": "2024-01-01T10:00:00"
}
接口地址: GET /api/users
功能描述: 获取系统中所有学习搭子的列表
请求参数: 无
成功响应:
{
"code": 200,
"message": "获取中小学学习搭子列表成功",
"data": [
{
"userId": 1,
"username": "admin",
"grade": "高三",
"avatarUrl": "https://example.com/avatar/admin.jpg",
"createTime": "2024-01-01T10:00:00",
"updateTime": "2024-01-01T10:00:00"
},
{
"userId": 2,
"username": "xiaoming",
"grade": "初三",
"avatarUrl": "https://example.com/avatar/xiaoming.jpg",
"createTime": "2024-01-01T10:00:00",
"updateTime": "2024-01-01T10:00:00"
}
],
"timestamp": "2024-01-01T10:00:00"
}
接口地址: PUT /api/users/{id}
功能描述: 更新指定学习搭子的信息
请求参数:
id
(路径参数): 用户ID请求体:
{
"grade": "高一",
"avatarUrl": "https://example.com/avatar/new.jpg"
}
参数说明:
grade
(可选): 年级avatarUrl
(可选): 头像URL成功响应:
{
"code": 200,
"message": "中小学学习搭子信息更新成功",
"data": {
"userId": 1,
"username": "xiaoming",
"grade": "高一",
"avatarUrl": "https://example.com/avatar/new.jpg",
"createTime": "2024-01-01T10:00:00",
"updateTime": "2024-01-01T11:00:00"
},
"timestamp": "2024-01-01T11:00:00"
}
错误响应:
{
"code": 400,
"message": "参数格式不正确",
"data": null,
"timestamp": "2024-01-01T11:00:00"
}
接口地址: DELETE /api/users/{id}
功能描述: 删除指定学习搭子
请求参数:
id
(路径参数): 用户ID请求示例: DELETE /api/users/1
成功响应:
{
"code": 200,
"message": "中小学学习搭子删除成功",
"data": null,
"timestamp": "2024-01-01T12:00:00"
}
错误响应:
{
"code": 404,
"message": "中小学学习搭子不存在",
"data": null,
"timestamp": "2024-01-01T12:00:00"
}
接口地址: POST /api/users/{id}/change-password
功能描述: 修改中小学学习搭子密码
请求参数:
id
(路径参数): 用户ID请求体:
{
"oldPassword": "123456",
"newPassword": "newpassword123"
}
参数说明:
oldPassword
(必填): 原密码newPassword
(必填): 新密码,6个字符以上成功响应:
{
"code": 200,
"message": "密码修改成功",
"data": null,
"timestamp": "2024-01-01T13:00:00"
}
错误响应:
{
"code": 400,
"message": "原密码错误",
"data": null,
"timestamp": "2024-01-01T13:00:00"
}
所有接口都使用统一的响应格式:
{
"code": 200,
"message": "操作结果描述",
"data": "具体数据或null",
"timestamp": "响应时间戳"
}
200
: 操作成功400
: 请求参数错误401
: 未授权(用户名或密码错误)404
: 资源不存在500
: 服务器内部错误系统启动时会自动创建以下测试中小学学习搭子:
管理员账户
admin
123456
高三
https://example.com/avatar/admin.jpg
测试用户1
xiaoming
123456
初三
https://example.com/avatar/xiaoming.jpg
测试用户2
xiaohong
123456
高二
https://example.com/avatar/xiaohong.jpg
测试用户3
xiaogang
123456
初二
https://example.com/avatar/xiaogang.jpg
curl -X POST http://localhost:8080/api/users/register \
-H "Content-Type: application/json" \
-d '{
"username": "newuser",
"password": "123456",
"grade": "初一",
"avatarUrl": "https://example.com/avatar/newuser.jpg"
}'
curl -X POST http://localhost:8080/api/users/login \
-H "Content-Type: application/json" \
-d '{
"username": "xiaoming",
"password": "123456"
}'
curl -X GET http://localhost:8080/api/users/1
curl -X GET http://localhost:8080/api/users
如有问题,请联系开发团队:dev@example.com