使用 golang 构建 restful api 并连接 Mysql 数据库:安装 Golang、mysql 驱动程序和创建项目。定义 api 处理程序,包括获取所有用户和特定用户。通过
使用 golang 构建 restful api 并连接 Mysql 数据库:安装 Golang、mysql 驱动程序和创建项目。定义 api 处理程序,包括获取所有用户和特定用户。通过 sql.open 函数连接到 mysql 数据库。使用 db.query 和 db.queryrow 从数据库中获取数据。使用 JSON.newencoder 编写 json 响应。可选:提供创建新用户的代码示例。
如何使用 Golang 构建 RESTful API 并连接 MySQL 数据库
介绍
RESTful API 是一种基于 Http 协议的 API 类型,可简化客户端与服务器之间的交互。使用 Golang 构建 RESTful API 可以充分利用其高性能和并发性优势。本文将指导你如何使用 Golang 构建一个 RESTful API,并连接到 MySQL 数据库。
先决条件
构建 RESTful API
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))
}
处理用户请求
实战案例
假设你的 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 数据库?的详细内容,更多请关注编程网其它相关文章!
--结束END--
本文标题: 如何使用 Golang 构建 RESTful API 并连接 MySQL 数据库?
本文链接: https://www.lsjlt.com/news/617593.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0