Flask+Vue3 展示Steam拥有的游戏
steam夏促来了,今年打折的比较给力,但是自己在很多平台都有购买游戏(游戏我都买了,还要玩吗),需要把各个平台游戏汇总一下,先从steam开始,它的web api最完善。以下内容主要是ChatGPT的帮助下完成,效率的确很高,解释的很详细。
完整代码:https://github.com/memorywalker/GameStore.git
Flask后端
使用Flask提供后端http服务,requests请求steam的web API
安装环境
1 | mkdir GameStore |
后端服务程序
查看并测试steam的API可以用这个网站https://steamapi.xpaw.me/#IPlayerService/GetOwnedGames
steam的web API key 在登录steam账号后,这个网址https://steamcommunity.com/dev/apikey
可以看到
在GameStore目录中新建一个app.py
文件,作为flask的主程序,目前只有最简单处理一个查询列表的请求,以后有了本地数据库,就从本地获取数据。
为了显示游戏的封面,把游戏的icon的信息替换为了steam游戏的图片,只需要appid信息,并把游戏的信息返回给客户端。
1 | from flask import Flask, jsonify, request |
Flask运行 在项目根目录GameStore下执行flask run
下面是flask收到来自vue的请求后,向steam请求数据收到的应答
Vue3前端
使用了vuetify自带的样式和组件可以快速创建一个效果还不错页面。ChatGPT提到UI框架可以选择Vuetify
, BootstrapVue
或Ant Design Vue
。它给的例子用的是Vuetify,说它是一个material design的组件框架。
安装运行环境
1 | npm create vue@latest |
其中Vuetify安装过程中会提示选择一个配置,我选择了Vuetify 3 - Vite
,其他选项没试,看名字应该选择这个,毕竟是Vue3+Vite创建的工程。安装Vuetify插件会修改App.vue,main.js,vite.config.js这三个文件,所以如果自己对这些文件有修改要先备份一下再安装Vuetify插件。
Vue主程序
- App.vue
1 | <script> |
Vue配置
- 配置plugins使用
vuetify
- 配置proxy,解决本地CORS请求处理
1 | import { fileURLToPath, URL } from 'node:url' |
最终效果
输入steam Id后,就可以在下方列出所拥有游戏的列表