Files
2025-08-24 13:01:09 +08:00
..
2025-08-24 13:01:09 +08:00
2025-08-24 13:01:09 +08:00
2025-08-24 13:01:09 +08:00
2025-08-24 13:01:09 +08:00
2025-08-24 13:01:09 +08:00
2025-08-24 13:01:09 +08:00
2025-08-24 13:01:09 +08:00
2025-08-24 13:01:09 +08:00

Web 服务器项目

这是一个简单的 HTTP Web 服务器项目,演示了 Go 语言在网络编程、并发处理和 RESTful API 开发方面的应用。

项目特性

  • HTTP 服务器基础功能
  • RESTful API 设计
  • JSON 数据处理
  • 路由管理
  • 中间件支持
  • 静态文件服务
  • 并发请求处理
  • 错误处理和日志记录
  • 简单的用户管理系统

项目结构

03-web-server/
├── README.md           # 项目说明文档
├── main.go            # 主程序入口
├── server/            # 服务器核心包
│   ├── server.go      # HTTP 服务器
│   ├── router.go      # 路由管理
│   ├── middleware.go  # 中间件
│   └── handlers.go    # 请求处理器
├── models/            # 数据模型
│   └── user.go        # 用户模型
├── static/            # 静态文件
│   ├── index.html     # 首页
│   ├── style.css      # 样式文件
│   └── script.js      # JavaScript 文件
├── data/              # 数据文件
│   └── users.json     # 用户数据
└── server_test.go     # 测试文件

运行方法

# 进入项目目录
cd 10-projects/03-web-server

# 运行程序
go run main.go

# 或者编译后运行
go build -o webserver main.go
./webserver

API 接口

用户管理 API

  • GET /api/users - 获取所有用户
  • GET /api/users/{id} - 获取指定用户
  • POST /api/users - 创建新用户
  • PUT /api/users/{id} - 更新用户信息
  • DELETE /api/users/{id} - 删除用户

其他接口

  • GET / - 首页
  • GET /health - 健康检查
  • GET /api/stats - 服务器统计信息
  • GET /static/* - 静态文件服务

使用示例

启动服务器

$ go run main.go
🚀 服务器启动成功
📍 地址: http://localhost:8080
📊 健康检查: http://localhost:8080/health
📚 API文档: http://localhost:8080/api

API 调用示例

# 获取所有用户
curl http://localhost:8080/api/users

# 创建新用户
curl -X POST http://localhost:8080/api/users \
  -H "Content-Type: application/json" \
  -d '{"name":"张三","email":"zhangsan@example.com","age":25}'

# 获取指定用户
curl http://localhost:8080/api/users/1

# 更新用户信息
curl -X PUT http://localhost:8080/api/users/1 \
  -H "Content-Type: application/json" \
  -d '{"name":"张三","email":"zhangsan@gmail.com","age":26}'

# 删除用户
curl -X DELETE http://localhost:8080/api/users/1

# 健康检查
curl http://localhost:8080/health

# 服务器统计
curl http://localhost:8080/api/stats

响应示例

// GET /api/users
{
  "status": "success",
  "data": [
    {
      "id": 1,
      "name": "张三",
      "email": "zhangsan@example.com",
      "age": 25,
      "created_at": "2024-01-01T10:00:00Z",
      "updated_at": "2024-01-01T10:00:00Z"
    }
  ],
  "count": 1
}

// GET /health
{
  "status": "healthy",
  "timestamp": "2024-01-01T10:00:00Z",
  "uptime": "1h30m45s",
  "version": "1.0.0"
}

学习要点

这个项目综合运用了以下 Go 语言特性:

  1. HTTP 服务器: 使用 net/http 包创建 Web 服务器
  2. 路由管理: 实现 RESTful 路由和参数解析
  3. JSON 处理: 请求和响应的 JSON 序列化/反序列化
  4. 中间件模式: 日志记录、CORS、认证等中间件
  5. 并发处理: 利用 goroutine 处理并发请求
  6. 错误处理: HTTP 错误响应和日志记录
  7. 文件操作: 静态文件服务和数据持久化
  8. 结构体和接口: 数据模型和服务接口设计
  9. 包管理: 多包项目结构和依赖管理
  10. 测试: HTTP 服务器和 API 的测试

扩展建议

  1. 添加用户认证和授权JWT
  2. 实现数据库集成MySQL、PostgreSQL
  3. 添加缓存支持Redis
  4. 实现 WebSocket 支持
  5. 添加 API 限流和熔断
  6. 集成 Swagger API 文档
  7. 添加配置文件支持
  8. 实现优雅关闭
  9. 添加监控和指标收集
  10. 支持 HTTPS 和 HTTP/2