Go 写一个简单的Get和Post请求服务
✅ 一、准备工作
-
安装 Go
-
安装后执行:
bashgo version
-
安装 VS Code 插件
- 在 VS Code 插件市场搜索并安装插件:
Go
(由 Go 团队提供)
- 在 VS Code 插件市场搜索并安装插件:
-
配置环境变量(可选)
- 设置
GOPATH
(默认是~/go
),添加到PATH
- 设置
✅ 二、创建 Go 项目结构
创建目录
bash
mkdir go-backend
进入对应目录
bash
cd go-backend
初始化go.mod模块管理文件
bash
go mod init go-backend

✅ 三、创建 HTTP 服务
整体目录结构如下所示:
tex
go-backend/
├── handler/
│ └── user_handler.go
├── model/
│ └── user.go
├── router/
│ └── router.go
├── service/
│ └── user_service.go
├── go.mod
├── go.sum
├── main.go

1. main.go
go
package main
import (
"fmt"
"log"
"net/http"
"go-backend/router"
)
func main() {
r := router.InitRouter()
fmt.Println("Server running at http://localhost:8083")
log.Fatal(http.ListenAndServe(":8083", r))
}
2. router/router.go
go
package router
import (
"github.com/gorilla/mux"
"go-backend/handler"
)
func InitRouter() *mux.Router {
r := mux.NewRouter()
r.HandleFunc("/api/users", handler.GetUsers).Methods("GET")
r.HandleFunc("/api/users", handler.CreateUser).Methods("POST")
return r
}
3. handler/user_handler.go
go
package handler
import (
"encoding/json"
"net/http"
"go-backend/service"
"go-backend/model"
)
func GetUsers(w http.ResponseWriter, r *http.Request) {
users := service.GetUserList()
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(users)
}
func CreateUser(w http.ResponseWriter, r *http.Request) {
var user model.User
_ = json.NewDecoder(r.Body).Decode(&user)
savedUser := service.SaveUser(user)
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(savedUser)
}
4. model/user.go
go
package model
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
5. service/user_service.go
go
package service
import "go-backend/model"
var users = []model.User{
{ID: 1, Name: "Alice"},
{ID: 2, Name: "Bob"},
}
func GetUserList() []model.User {
return users
}
func SaveUser(u model.User) model.User {
u.ID = len(users) + 1
users = append(users, u)
return u
}
安装mux
bash
go get -u github.com/gorilla/mux
如果提示报错,下载超时的话,更换代理
bash
go env -w GOPROXY=https://goproxy.cn,direct
更换代理之后再运行上述命令
bash
go get -u github.com/gorilla/mux

接着启动main
✅ 四、测试get请求和post请求
GET 请求

POST 请求

再次请求GET,可以拿到刚才保存的User用户信息
