本站资源收集于互联网,不提供软件存储服务,每天免费更新优质的软件以及学习资源!

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

网络教程 app 1℃

如何使用Golang构建RESTfulAPI并部署到Docker

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

如何在 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 mainimport ( "encoding/json" "fmt" "net/http" "github./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-alpineWORKDIR /usr/src/appCOPY . ./RUN go build -o my-apiCMD ["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 localhost:8080/users -H "Content-Type: application/json" -d ‘{"name": "test", "email": "test@example.", "age": 30}’

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

转载请注明:范的资源库 » 如何使用Golang构建RESTfulAPI并部署到Docker?

喜欢 (0)