第一章:Go语言简易商场Web服务概览
这是一个基于 Go 标准库 net/http 构建的轻量级商场 Web 服务原型,聚焦核心业务场景:商品浏览、分类查询与基础订单提交。它不依赖任何 Web 框架(如 Gin 或 Echo),旨在展示 Go 原生 HTTP 能力的简洁性与可控性,适合教学演示与微服务边界服务的快速验证。
核心功能设计
- 商品列表支持按名称模糊搜索与按类别(如“电子”、“服饰”、“食品”)精确筛选
- 单页静态 HTML 前端通过
/路由提供交互界面,后端以 JSON 接口(如/api/products)响应数据请求 - 订单创建采用幂等性设计:客户端需携带唯一
order_id,服务端校验重复提交并返回 409 Conflict
项目结构示意
mall/
├── main.go # HTTP 服务入口与路由注册
├── product.go # 商品结构体与内存数据库操作(使用 sync.Map)
├── handler/ # 各业务处理器(productHandler, orderHandler)
└── static/ # index.html 与内联 CSS/JS(无外部依赖)
快速启动步骤
- 创建
main.go并粘贴以下最小服务骨架:package main
import ( “fmt” “log” “net/http” “strings” )
func homeHandler(w http.ResponseWriter, r *http.Request) { if r.URL.Path != “/” { // 仅处理根路径 http.NotFound(w, r) return } w.Header().Set(“Content-Type”, “text/html; charset=utf-8”) fmt.Fprint(w, `
