使用标准库或Gin可快速实现REST API:先定义数据结构和处理器,再通过路由映射HTTP方法,结合JSON序列化与状态码返回;Gin框架简化了中间件、路由和错误处理,适合高效开发。

用Golang实现REST API接口其实不难,核心是利用标准库net/http或第三方框架(如Gin、Echo)来处理HTTP请求,结合路由、控制器和数据序列化。下面以标准库和Gin两种方式说明如何快速搭建一个基础的REST API。
Go的标准库已经足够强大,适合轻量级项目。
步骤:net/http和encoding/json
示例代码:
package main
import (
"encoding/json"
"log"
"net/http"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
var users = []User{{ID: 1, Name: "Alice"}, {ID: 2, Name: "Bob"}}
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
json.NewDecoder(r.Body).Decode(&user)
users = append(users, user)
w.WriteHeader(http.StatusCreated)
json.NewEncoder(w).Encode(user)
}
func main() {
http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
getUsers(w, r)
} else if r.Method == "POST" {
createUser(w, r)
}
})
log.Println("Server starting on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
Gin是一个高性能的Web框架,简化了路由、中间件和JSON处理。
立即学习“go语言免费学习笔记(深入)”;
安装Gin:go get -u github.com/gin-gonic/gin
示例代码:
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// GET /users
r.GET("/users", func(c *gin.Context) {
users := []map[string]interface{}{
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"},
}
c.JSON(200, users)
})
// POST /users
r.POST("/users", func(c *gin.Context) {
var user map[string]interface{}
if err := c.ShouldBindJSON(&user); err != nil {
c.JSON(400, gin.H{"error": err.Error()})
return
}
c.JSON(201, user)
})
r.Run(":8080")
}
无论用哪种方式,注意以下几点:
json.Marshal/Unmarshal或框架自带方法处理JSON以上就是Golang如何实现REST API接口的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号