如何使用 Golang 构建 RESTful API 并部署到 Docker?

在 golang 中构建 restful api,部署到 docker:创建 golang 项目并定义数据结构。编写 api 处理程序,定义路由并启动 http 服务器。创建 dockerfile,构建 docker 镜像并运行 docke

golang 中构建 restful api,部署到 docker:创建 golang 项目并定义数据结构。编写 api 处理程序,定义路由并启动 http 服务器。创建 dockerfile,构建 docker 镜像并运行 docker 容器。实战案例:使用 postman 或 curl 测试 api。

如何使用 Golang 构建 RESTful API 并部署到 Docker?

如何在 Golang 中构建 RESTful API 并部署到 Docker

构建 RESTful API

创建 Golang 项目

go mod init my-api

登录后复制

定义数据结构

type User struct {
    ID     int    `json:"id"`
    Name   string `json:"name"`
    Email  string `json:"email"`
    Age    int    `json:"age"`
}

登录后复制

编写 API 处理程序

package main

import (
    "encoding/json"
    "fmt"
    "net/http"

    "<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15841.html" target="_blank">git</a>hub.com/gorilla/mux"
)

func main() {
    // 创建一个新的路由器
    r := mux.NewRouter()

    // 定义路由
    r.HandleFunc("/users", getUsers).Methods("GET")
    r.HandleFunc("/users/{id}", getUser).Methods("GET")
    r.HandleFunc("/users", createUser).Methods("POST")
    r.HandleFunc("/users/{id}", updateUser).Methods("PUT")
    r.HandleFunc("/users/{id}", deleteUser).Methods("DELETE")

    // 启动 HTTP 服务器
    fmt.Println("Listening on port 8080")
    http.ListenAndServe(":8080", r)
}

// 获取所有用户
func getUsers(w http.ResponseWriter, r *http.Request) {
    // ...
}

// 获取单个用户
func getUser(w http.ResponseWriter, r *http.Request) {
    // ...
}

// 创建用户
func createUser(w http.ResponseWriter, r *http.Request) {
    // ...
}

// 更新用户
func updateUser(w http.ResponseWriter, r *http.Request) {
    // ...
}

// 删除用户
func deleteUser(w http.ResponseWriter, r *http.Request) {
    // ...
}

登录后复制

部署到 Docker

创建 Dockerfile

FROM golang:1.18-alpine

WORKDIR /usr/src/app

COPY . ./

RUN go build -o my-api

CMD ["my-api"]

登录后复制

构建 Docker 镜像

docker build -t my-api-image .

登录后复制

运行 Docker 容器

docker run -p 8080:8080 my-api-image

登录后复制

实战案例:

可以将此 API 部署到 Docker 并使用 Postman 或 curl 进行测试。例如,创建一个名为 “test” 的用户:

curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d '{"name": "test", "email": "test@example.com", "age": 30}'

登录后复制

以上就是如何使用 Golang 构建 RESTful API 并部署到 Docker?的详细内容,更多请关注叮当号网其它相关文章!

文章来自互联网,只做分享使用。发布者:weapp,转转请注明出处:https://www.dingdanghao.com/article/492571.html

(0)
上一篇 2024-05-15 22:00
下一篇 2024-05-15 22:00

相关推荐

联系我们

在线咨询: QQ交谈

邮件:442814395@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信公众号