mirror of
https://github.com/ProudMuBai/GoFilm.git
synced 2026-02-04 06:54:41 +08:00
Film Server
简介
- server 是本项目的后端项目
- 主要用于提供前端项目需要的 API数据接口, 以及数据搜集和更新
- 实现思路 :
- 使用 gocolly 获取公开的影视资源,
- 将请求数据通过程序处理整合成统一格式后使用redis进行暂存
- 使用 mysql 存储收录的影片的检索信息, 用于影片检索, 分类
- 使用 gin 作为web服务, 提供相应api接口
- 项目依赖
# gin web服务框架, 用于处理与前端工程的交互
github.com/gin-gonic/gin v1.9.0
# gocolly go语言爬虫框架, 用于搜集公共影视资源
github.com/gocolly/colly/v2 v2.1.0
# go-redis redis交互程序
github.com/redis/go-redis/v9 v9.0.2
# gorm 用于处理与mysql数据库的交互
gorm.io/gorm v1.24.6
gorm.io/driver/mysql v1.4.7
项目结构
项目主要目录结构
- config 用于存放项目中使用的配置信息和静态常量
- controller 请求处理控制器
- logic 请求处理逻辑实现
- model 数据模型结构体以及与数据库交互
- plugin 项目所需的插件工具集合
- common 公共依赖
- db 数据库配置信息
- spider gocolly配置, 执行逻辑, 数据前置处理等
server
├─ config
│ └─ DataConfig.go
├─ controller
│ ├─ IndexController.go
│ └─ SpiderController.go
├─ logic
│ └─ IndexLogic.go
├─ model
│ ├─ Categories.go
│ ├─ LZJson.go
│ ├─ Movies.go
│ └─ Search.go
├─ plugin
│ ├─ common
│ │ ├─ JsonUtils.go
│ │ ├─ ProcessCategory.go
│ │ └─ ProcessMovies.go
│ ├─ db
│ │ ├─ mysql.go
│ │ └─ redis.go
│ └─ spider
│ ├─ Spider.go
│ ├─ SpiderCron.go
│ └─ SpiderRequest.go
├─ router
│ └─ router.go
├─ go.mod
├─ go.sum
├─ main.go
└─ README.md
启动方式
本地运行
- 修改 /server/plugin/db 目录下的 mysql.go 和 redis.go 中的连接地址和用户名密码
- 在 server 目录下执行
go run main.go