后台服务设计
1. 登陆模块
登陆接口为POST /api/user/login
,负责用户登陆的相关功能。
用户发起登陆请求时,参照微信登录以及获取开放数据的官方文档,服务器访问微信官方服务器进行登陆,获取加密的用户信息。使用官方指定的解密方法,得到用户的openid
、昵称、头像等信息。
首先调用getUser()
访问数据库获取用户信息,若不存在,则调用createUser()
在数据库中插入新的用户信息;若用户存在,则调用updateUser()
更新用户信息。
2. 音乐生成模块
关于音乐的接口为/api/music/xxx
,负责与音乐相关的功能。
GET /api/music/get
调用getMusic()
,访问数据库,获取相关音乐信息。类似的接口还有GET /api/music/get_list
、GET /api/music/get_list_count
,图中未列出。
GET /api/music/delete
调用deleteMusic()
,删除指定音乐。
POST /api/music/generate
调用generateMusic()
生成音乐。首先通过命令行调用python运行模型,生成.mid
格式的音乐文件。然后通过命令行调用timidity
和ffmpeg
将.mid
格式的音乐格式转换为.MP3
格式,存储在music files
中。最后将相关音乐信息写入数据库中。
Author: 冯旭
Create Time: 2022-02-18
Update Time: 2022-02-18