这是一个基于Go语言开发的单词学习服务器应用,提供用户管理、单词数据管理、云端生词本、打印导出和学习功能的后端API服务。
打印效果:
克隆项目
bash
git clone <repository-url>
cd go-test
安装依赖
bash
go mod download
设置数据库
sql
CREATE DATABASE wordserver;导入数据库结构:
bash
mysql -u username -p wordserver < mysql.sql
配置数据库连接
internal/config/database.go 文件,修改数据库连接参数:
go
dsn := "username:password@tcp(localhost:3306)/wordserver?charset=utf8mb4&parseTime=True&loc=Local"启动服务器
bash
go run main.go
访问应用
http://localhost:8080http://localhost:8080/api/v1详细的API文档请参考 API.md 文件。
POST /api/v1/user/register - 用户注册POST /api/v1/user/login - 用户登录GET /api/v1/user/profile - 获取用户信息GET /api/v1/words - 获取单词列表GET /api/v1/words/{id} - 获取单词详情POST /api/v1/words - 添加新单词GET /api/v1/user/words - 获取用户学习记录POST /api/v1/user/words - 添加用户单词PUT /api/v1/user/words/{id} - 更新学习进度curl -X POST http://localhost:8080/api/v1/user/register \
-H "Content-Type: application/json" \
-d '{
"username": "testuser",
"password": "password123",
"email": "test@example.com"
}'
curl -X GET http://localhost:8080/api/v1/words \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
go-test/
├── API.md # API文档
├── go.mod # Go模块文件
├── main.go # 应用入口
├── mysql.sql # 数据库初始化脚本
├── wordserver # 编译后的可执行文件
├── data/ # 数据文件目录
├── internal/ # 内部代码
│ ├── config/ # 配置相关
│ │ └── database.go # 数据库配置
│ ├── handler/ # 请求处理器
│ │ ├── user_handler.go
│ │ ├── word_handler.go
│ │ └── user_new_word_handler.go
│ ├── middleware/ # 中间件
│ │ ├── CROS.go # 跨域处理
│ │ └── JWTAuth.go # JWT认证
│ ├── models/ # 数据模型
│ │ ├── user.go
│ │ ├── word.go
│ │ ├── word_detail.go
│ │ └── user_new_word.go
│ ├── routers/ # 路由配置
│ │ └── routers.go
│ └── tool/ # 工具函数
│ ├── JsonTool.go
│ └── PageTool.go
├── static/ # 静态文件
│ ├── css/
│ │ └── main.css
│ └── js/
│ ├── axios.min.js
│ └── word_data.js
└── templates/ # HTML模板
└── index.html
go build -o wordserver main.go
go test ./...
go fmt ./...
编译为可执行文件:
bash
GOOS=linux GOARCH=amd64 go build -o wordserver main.go
上传到服务器并配置数据库
启动服务:
bash
./wordserver
$ claude mcp add GoWordServer \
-- python -m otcore.mcp_server <graph>