答案:使用Golang标准库net/http可实现基础RESTful服务,通过定义User模型、创建CRUD处理函数并在main中注册路由,启动HTTP服务器完成用户管理接口。

用Golang实现一个基础的RESTful服务并不复杂,核心在于路由控制、HTTP处理和数据交互。下面是一个简单但完整的示例,使用标准库
net/http
一个清晰的小项目结构有助于维护:
├── main.go在
models.go
同时初始化一个切片模拟存储:
立即学习“go语言免费学习笔记(深入)”;
var users []User在
handlers.go
// 获取所有用户
func GetUsers(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(users)
}
// 创建用户
func CreateUser(w http.ResponseWriter, r *http.Request) {
var user User
if err := json.NewDecoder(r.Body).Decode(&user); err != nil {
http.Error(w, "无效的请求体", http.StatusBadRequest)
return
}
user.ID = nextID
nextID++
users = append(users, user)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusCreated)
json.NewEncoder(w).Encode(user)
}
// 获取单个用户
func GetUser(w http.ResponseWriter, r *http.Request) {
id, := strconv.Atoi(r.URL.Path[len("/users/"):])
for , u := range users {
if u.ID == id {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(u)
return
}
}
http.Error(w, "用户未找到", http.StatusNotFound)
}
在
main.go
别忘了在项目根目录运行
go mod init your-project-name
启动服务后,可以用curl测试:
# 创建用户curl https://www.php.cn/link/226ad861fc651e3635a98cc062b602f6
curl https://www.php.cn/link/226ad861fc651e3635a98cc062b602f6/1
说明:这个示例只实现了GET和POST,PUT和DELETE可按相同模式扩展。实际项目中建议引入路由库(如
gorilla/mux
基本上就这些。结构清晰,依赖少,适合学习Golang Web服务的基础流程。
以上就是Golang实现基础RESTful服务项目的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号