如何使用Go创建RESTful API?- Golang公司

作者:API传播员 · 2026-01-15 · 阅读时间:4分钟
本文提供使用Go语言创建RESTful API的完整指南,涵盖标准库包如net/http和encoding/json的使用、结构体定义、核心函数实现,以及运行和测试步骤,帮助初学者快速构建API并探索高级功能如gorilla/mux和Gin框架集成。

使用 Go 语言创建 RESTful API 的完整指南

如果这是您第一次尝试创建 RESTful API,那么本文将为您提供详细的指导,帮助您快速上手。以下内容将介绍 简单的 RESTful API。


常用的 Go 标准库包

在创建 RESTful API 时,以下 Go 标准库包将是必不可少的:

  • fmt:用于格式化输入、输出以及字符串操作。它的功能类似于 C 语言中的 printfscanf
  • log:Go 标准库中内置的日志包,提供基本的日志记录功能。您可以通过它定义不同的日志输出格式。
  • net/http:这是构建 HTTP 服务器的核心包,支持 HTTP 请求的处理,包括 GETPOSTHEADPOSTForm 等方法。
  • encoding/json:用于 JSON 数据的编码和解码。通过 MarshalUnmarshal 函数,可以实现 Go 数据结构与 JSON 数据之间的映射。

定义结构体和初始化数据

接下来,我们将创建一个名为 Movie 的结构体,并为其定义三个字段:

type Movie struct {
    Title    string json:"title"
    Duration int    json:"duration"
    Cast     string json:"cast"
}

在上述代码中,json:"title" 等标签用于指定字段在序列化为 JSON 时的名称。需要注意的是,标签中的名称区分大小写,因此必须使用小写字母。

随后,我们创建一个名为 movies 的切片,用于存储多个 Movie 实例。


核心函数的实现

在实现 API 的过程中,我们将定义以下四个核心函数:

  1. Intro 函数:处理对根 URL 的请求。
  2. returnAllMovies 函数:返回所有电影数据,并以 JSON 格式进行编码。
  3. handleRequests 函数:匹配 URL 路径并调用相应的处理函数。
  4. main 函数:初始化数据并启动 HTTP 服务器。

Intro 函数

Intro 函数的参数 (w http.ResponseWriter, r *http.Request) 用于处理 HTTP 请求和响应。以下是一个简单的实现示例:

func Intro(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "欢迎使用我们的 RESTful API!")
}

returnAllMovies 函数

该函数将返回 movies 切片中的所有数据,并将其编码为 JSON 格式:

func returnAllMovies(w http.ResponseWriter, r *http.Request) {
    json.NewEncoder(w).Encode(movies)
}

handleRequests 函数

handleRequests 函数中,我们将 URL 路径与处理函数进行映射,并通过 http.ListenAndServe 启动服务器:

func handleRequests() {
    http.HandleFunc("/", Intro)
    http.HandleFunc("/movies", returnAllMovies)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

main 函数

main 函数中,我们为 movies 切片添加初始数据,并调用 handleRequests 函数启动服务器:

func main() {
    movies = []Movie{
        {Title: "兰博", Duration: 1245, Cast: "西尔维斯特·史泰龙"},
        {Title: "间谍之桥", Duration: 31245, Cast: "汤姆·汉克斯"},
    }
    handleRequests()
}

运行程序

完成代码后,您可以按照以下步骤运行程序:

  1. 在终端中输入以下命令运行代码:

    go run main.go
  2. 打开浏览器并访问 http://localhost:8080,您将看到欢迎消息“欢迎使用我们的 RESTful API!”。

  3. 访问 http://localhost:8080/movies,您将看到返回的 JSON 数据,例如:

    [
       {"title": "兰博", "duration": 1245, "cast": "西尔维斯特·史泰龙"},
       {"title": "间谍之桥", "duration": 31245, "cast": "汤姆·汉克斯"}
    ]

总结与下一步

通过本文的介绍,您已经成功创建了一个简单的 RESTful API。接下来,您可以尝试以下高级功能:

  • 使用 gorilla/mux 包替代 net/http 进行路由管理。
  • 集成 Gin 框架以提升开发效率。
  • 连接 MongoDB 数据库,实现持久化存储。

花些时间熟悉这些概念和流程,相信您很快就能轻松构建功能完善的 RESTful API

原文链接: https://golang.company/blog/how-to-create-a-restful-api-with-go