Sundynix 微服务 API 文档
Base URL 约定: 各服务独立部署,通过 Nginx 统一代理
一、用户服务 (user-api) — 端口 9001
1.1 公开接口(无需鉴权)
POST /api/user/miniLogin — 微信小程序登录
请求体:
响应:
POST /api/user/loginByPhone — 手机号登录
请求体:
响应: 同 miniLogin
POST /api/user/login — 账号密码登录
请求体:
响应: 同 miniLogin
GET /api/user/info — 获取当前用户信息
响应:
PUT /api/user/update — 更新用户信息
请求体:
PUT /api/user/changePassword — 修改密码
POST /api/user/list — 用户列表(管理后台)
响应:
DELETE /api/user/delete — 删除用户
GET /api/user/location?longitude=116.40&latitude=39.90 — 获取位置
GET /api/user/weather?adcode=110000 — 获取天气
二、文件服务 (file-api) — 端口 9002
所有接口需要鉴权
POST /api/file/upload — 上传文件
请求: multipart/form-data,字段名 file
响应:
DELETE /api/file/delete — 删除文件
POST /api/file/list — 文件列表
GET /api/file/:id — 获取文件详情
三、系统服务 (system-api) — 端口 9003
所有接口需要鉴权
3.1 客户端管理
| 方法 |
路径 |
说明 |
| POST |
/api/sys/client/create |
创建客户端 |
| PUT |
/api/sys/client/update |
更新客户端 |
| DELETE |
/api/sys/client/delete |
删除客户端 |
| POST |
/api/sys/client/list |
客户端列表 |
3.2 角色管理
| 方法 |
路径 |
说明 |
| POST |
/api/sys/role/create |
创建角色 |
| PUT |
/api/sys/role/update |
更新角色 |
| DELETE |
/api/sys/role/delete |
删除角色 |
| POST |
/api/sys/role/list |
角色列表 |
3.3 菜单管理
| 方法 |
路径 |
说明 |
| POST |
/api/sys/menu/create |
创建菜单 |
| PUT |
/api/sys/menu/update |
更新菜单 |
| DELETE |
/api/sys/menu/delete |
删除菜单 |
| GET |
/api/sys/menu/list |
菜单树形列表 |
| POST |
/api/sys/menu/byRole |
根据角色获取菜单 |
3.4 操作日志
| 方法 |
路径 |
说明 |
| POST |
/api/sys/log/list |
操作日志列表 |
| DELETE |
/api/sys/log/delete |
删除日志 |
3.5 字典管理
| 方法 |
路径 |
说明 |
| POST |
/api/sys/dict/create |
创建字典 |
| PUT |
/api/sys/dict/update |
更新字典 |
| DELETE |
/api/sys/dict/delete |
删除字典 |
| POST |
/api/sys/dict/list |
字典列表 |
四、植物服务 (plant-api) — 端口 9004
4.1 公开接口
| 方法 |
路径 |
说明 |
| POST |
/api/plant/callback/wechatpay |
微信支付回调 |
4.2 我的植物(需鉴权)
| 方法 |
路径 |
说明 |
请求体示例 |
| POST |
/api/plant/my/create |
创建植物 |
{name, plantTime, placement, imgIds[]} |
| PUT |
/api/plant/my/update |
更新植物 |
{id, name, status, ...} |
| DELETE |
/api/plant/my/delete |
删除植物 |
{ids[]} |
| POST |
/api/plant/my/list |
植物列表 |
{current, pageSize, name} |
| GET |
/api/plant/my/:id |
植物详情 |
— |
| POST |
/api/plant/my/carePlan |
添加养护计划 |
{plantId, name, targetAction, period} |
| POST |
/api/plant/my/careRecord |
添加养护记录 |
{plantId, planId, action} |
| POST |
/api/plant/my/growthRecord |
添加成长记录 |
{plantId, content, imgIds[]} |
4.3 百科
| 方法 |
路径 |
说明 |
| POST |
/api/plant/wiki/list |
百科列表 |
| GET |
/api/plant/wiki/:id |
百科详情 |
| GET |
/api/plant/wiki/class/list |
分类列表 |
| POST |
/api/plant/wiki/class/create |
创建分类 |
| POST |
/api/plant/wiki/star |
收藏/取消百科 |
4.4 社区帖子
| 方法 |
路径 |
说明 |
| POST |
/api/plant/post/create |
发布帖子 |
| POST |
/api/plant/post/list |
帖子列表 |
| GET |
/api/plant/post/:id |
帖子详情 |
| DELETE |
/api/plant/post/delete |
删除帖子 |
| POST |
/api/plant/post/comment |
评论帖子 |
| POST |
/api/plant/post/like |
点赞帖子 |
4.5 其他
| 方法 |
路径 |
说明 |
| GET |
/api/plant/topic/list |
话题列表 |
| POST |
/api/plant/topic/create |
创建话题 |
| POST |
/api/plant/ocr/classify |
OCR植物识别 |
| POST |
/api/plant/exchange/list |
兑换商品列表 |
| POST |
/api/plant/exchange/order |
兑换商品 |
| POST |
/api/plant/ai/chat |
AI问答 |
| GET |
/api/plant/ai/history |
聊天历史 |
| GET |
/api/plant/profile/info |
获取用户资料 |
| PUT |
/api/plant/profile/update |
更新用户资料 |
| POST |
/api/plant/config/level/list |
等级配置列表 |
| POST |
/api/plant/config/badge/list |
徽章配置列表 |
五、电台服务 (radio-api) — 端口 9005
5.1 公开接口
| 方法 |
路径 |
说明 |
| POST |
/api/radio/callback/wechatpay |
微信支付回调 |
5.2 分类管理(需鉴权)
| 方法 |
路径 |
说明 |
| POST |
/api/radio/category/create |
创建分类 |
| PUT |
/api/radio/category/update |
更新分类 |
| DELETE |
/api/radio/category/delete |
删除分类 |
| POST |
/api/radio/category/list |
分类列表 |
5.3 频道管理
| 方法 |
路径 |
说明 |
| POST |
/api/radio/channel/create |
创建频道 |
| PUT |
/api/radio/channel/update |
更新频道 |
| DELETE |
/api/radio/channel/delete |
删除频道 |
| POST |
/api/radio/channel/list |
频道列表 |
| GET |
/api/radio/channel/:id |
频道详情 |
5.4 节目管理
| 方法 |
路径 |
说明 |
| POST |
/api/radio/program/create |
创建节目 |
| PUT |
/api/radio/program/update |
更新节目 |
| DELETE |
/api/radio/program/delete |
删除节目 |
| POST |
/api/radio/program/list |
节目列表 |
| GET |
/api/radio/program/:id |
节目详情 |
| POST |
/api/radio/program/tts |
TTS生成音频 |
5.5 音色管理
| 方法 |
路径 |
说明 |
| POST |
/api/radio/voice/create |
创建音色 |
| PUT |
/api/radio/voice/update |
更新音色 |
| DELETE |
/api/radio/voice/delete |
删除音色 |
| POST |
/api/radio/voice/list |
音色列表 |
5.6 用户互动
| 方法 |
路径 |
说明 |
| POST |
/api/radio/interaction/like |
点赞/取消 |
| POST |
/api/radio/interaction/favorite |
收藏/取消 |
| POST |
/api/radio/interaction/comment |
评论节目 |
| POST |
/api/radio/interaction/history |
记录播放历史 |
| POST |
/api/radio/interaction/history/list |
播放历史 |
| POST |
/api/radio/interaction/favorite/list |
收藏列表 |
5.7 订阅/支付/VIP
| 方法 |
路径 |
说明 |
| GET |
/api/radio/subscription/list |
我的订阅 |
| POST |
/api/radio/pay/create |
创建支付订单 |
| POST |
/api/radio/vip/list |
VIP配置列表 |
| GET |
/api/radio/vip/info |
我的VIP信息 |
5.8 数据分析
| 方法 |
路径 |
说明 |
| POST |
/api/radio/analytics/overview |
数据概览 |
| POST |
/api/radio/analytics/channel |
频道数据 |
| POST |
/api/radio/analytics/user |
用户数据 |
六、统一规约
6.1 鉴权方式
所有需要鉴权的接口,请在请求头中携带:
6.2 统一响应格式
6.3 分页请求格式
6.4 分页响应格式
6.5 删除请求格式
七、数据库设计说明
7.1 用户扩展表设计
基础用户表 sundynix_user 只存储认证和通用信息(账号、密码、OpenID、手机号等),各业务服务通过扩展表存储业务特有的用户数据:
设计原则: 新增业务产品时,只需创建新的扩展表,无需修改基础用户表。
7.2 数据库拆分
| 数据库 |
包含的表 |
| sundynix_user |
sundynix_user, sundynix_user_role |
| sundynix_file |
sundynix_oss |
| sundynix_system |
sundynix_client, sundynix_role, sundynix_menu, sundynix_role_menu, sundynix_user_role, sundynix_dict, sundynix_operation_record |
| sundynix_plant |
sundynix_plant_user_profile, sundynix_my_plant, sundynix_care_plan, sundynix_care_record, sundynix_care_task, sundynix_growth_record, sundynix_wiki, sundynix_wiki_class, sundynix_post, sundynix_post_comment, sundynix_post_like, sundynix_post_topic, sundynix_user_star, sundynix_exchange_item, sundynix_exchange_order, sundynix_level_config, sundynix_badge_config, sundynix_user_badge, sundynix_ai_chat_history |
| sundynix_radio |
sundynix_radio_user_profile, sundynix_radio_category, sundynix_radio_channel, sundynix_radio_program, sundynix_radio_voice, sundynix_radio_like, sundynix_radio_favorite, sundynix_radio_comment, sundynix_radio_history, sundynix_radio_subscription, sundynix_radio_subscription_order, sundynix_radio_pay_notify, sundynix_radio_vip_config, sundynix_radio_listen_log |