首頁 > 後端開發 > Golang > 主體

如何使用 Golang 建立 RESTful API 並連接 MySQL 資料庫?

WBOY
發布: 2024-06-05 19:22:01
原創
1010 人瀏覽過

使用 Golang 建立 RESTful API 並連接 MySQL 資料庫:安裝 Golang、MySQL 驅動程式和建立專案。定義 API 處理程序,包括取得所有使用者和特定使用者。透過 sql.Open 函數連接到 MySQL 資料庫。使用 db.Query 和 db.QueryRow 從資料庫中取得資料。使用 json.NewEncoder 編寫 JSON 回應。可選:提供建立新使用者的程式碼範例。

如何使用 Golang 构建 RESTful API 并连接 MySQL 数据库?

如何使用Golang 建立RESTful API 並連接MySQL 資料庫

##介紹

RESTful API 是一種基於HTTP 協定的API 類型,可簡化客戶端與伺服器之間的互動。使用 Golang 建立 RESTful API 可以充分利用其高效能和並發性優勢。本文將指導你如何使用 Golang 建立一個 RESTful API,並連接到 MySQL 資料庫。

先決條件

    安裝Golang(版本1.18 或更高)
  • MySQL 資料庫和MySQL 驅動程式(
  • github. com/go-sql-driver/mysql
  • 文字編輯器或IDE(如Visual Studio Code)

建立RESTful API

  1. #建立新專案:使用go mod init <專案名稱> 指令建立新專案。
  2. 安裝 MySQL 驅動程式:使用 go get -u github.com/go-sql-driver/mysql 指令安裝 MySQL 驅動程式。
  3. 寫API 處理程序:main.go 檔案中寫以下API 處理程序:
  4. package main
    
    import (
        "database/sql"
        "log"
        "net/http"
        "strconv"
    
        "github.com/go-sql-driver/mysql"
    )
    
    const (
        user     = "root"
        password = ""
        host     = "localhost"
        port     = 3306
        database = "my_db"
    )
    
    var db *sql.DB
    
    func init() {
        dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?parseTime=true", user, password, host, port, database)
        var err error
        db, err = sql.Open("mysql", dsn)
        if err != nil {
            log.Fatal(err)
        }
    }
    
    func main() {
        http.HandleFunc("/users", handleUsers)
        http.HandleFunc("/users/", handleUser)
        log.Fatal(http.ListenAndServe(":8080", nil))
    }
    登入後複製
  1. 連接到MySQL 資料庫:使用sql.Open 函數連接到MySQL 資料庫。
  2. 定義路由處理程序:使用http.HandleFunc 函數定義兩個路由處理程序:/users/users/ :id
  3. 執行伺服器:使用 http.ListenAndServe 函數啟動伺服器。

處理使用者請求

  1. 取得所有使用者:/users 處理程序中,使用db.Query 函數從資料庫中取得所有使用者。
  2. 取得特定使用者:/users/:id 處理程序中,使用 db.QueryRow 函數從資料庫中取得特定使用者。
  3. 編寫回應:使用 json.NewEncoder 函數將使用者資料編碼為 JSON 並寫入到 HTTP 回應中。

實戰案例

假設你的MySQL 資料庫中有一個名為

users 的表,其架構如下:

CREATE TABLE users (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL,
  PRIMARY KEY (id)
);
登入後複製

你可以使用以下程式碼建立新使用者並將其新增至資料庫:

func handleCreateUser(w http.ResponseWriter, r *http.Request) {
    var user User
    if err := json.NewDecoder(r.Body).Decode(&user); err != nil {
        http.Error(w, "Invalid JSON", http.StatusBadRequest)
        return
    }

    stmt, err := db.Prepare("INSERT INTO users (name, email) VALUES (?, ?);")
    if err != nil {
        log.Fatal(err)
    }
    defer stmt.Close()

    res, err := stmt.Exec(user.Name, user.Email)
    if err != nil {
        log.Fatal(err)
    }

    id, err := res.LastInsertId()
    if err != nil {
        log.Fatal(err)
    }

    user.ID = int(id)
    json.NewEncoder(w).Encode(user)
}
登入後複製

注意:不要忘記更新資料庫連線資訊以及跨網域請求相關的處理機制。

以上是如何使用 Golang 建立 RESTful API 並連接 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板