原神模拟抽卡后端 api
项目采用 Spring Boot
技术栈
数据库使用了 MariaDB 以及 Redis
其中对 MariaDB 操作引入了 Spring Data Jpa
该项目前后端分离,未引入 shiro 以及 Spring Security 这种安全框架,对权限认证策略为:前端对 /api/auth
发起请求,后端获得当前 session
id,然后初始化一个用户,最后使用 RedisTemplate
将 session id 作为键,用户对象作为值存入 redis 数据库。认证成功后(默认未做限制)将返回当前的 session id,之后前端将每次都携带一个 vid
请求头访问接口,后端根据这个 vid 从 redis 数据库中取出对应的用户对象继续运行。
当前项目只完成了抽奖、统计、仓库展示功能。
如果 Github 预览图片比较困难,建议克隆项目之后本地查看 README
项目比较小,就不做打包处理了,感觉 BUG 有点多,各种耦合太多了容易出问题....
该项目由 Maven
做依赖管理,下载或者克隆当前项目到本地之后可以运行当前项目根目录下的 mvnw
或者 mvnw.bat
脚本,如果此前没有下载对应的 wrapper
,将会自动下载一个 maven
环境到当前用户的 .m2/wrapper
目录下。具体操作如下:
git clone https://github.com/imtin/genshin-gacha-demo-api.git
./mvnw -DskipTests clean install
测试方法依赖数据支持不可能通过....
配置 application-dev.yml
中数据库连接信息:
spring:
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://localhost:3306/genshin_gacha_demo
username: root
password: 123456
jpa:
hibernate:
ddl-auto: update
show-sql: true
open-in-view: false
redis:
host: localhost
port: 6379
注意,由于项目所需要的数据均来自网络,该项目采取定时任务抓取资源,而其中两个网络接口需要个人米游社的
cookie
信息,所以需要填写正确的 cookie 确保项目启动抓取数据成功。具体的获取方法是:打开米游社官网,登录之后 F12 调出控制台,切换到
Application
一栏,选中Cookies
,在其中把ltoken(cookie_token)
和ltuid(account_id)
复制粘贴到项目的配置文件中:
mihoyo:
account-id: your account id
cookie-token: your cookie token
img-save-dir: ${user.home}/.genshin-gacha-demo/img/
修改完这些配置之后就可以启动项目了,之后前端启动之后就OK了。