ホームページ >バックエンド開発 >Golang >Golang を使用して RESTful API を構築し、Docker にデプロイするにはどうすればよいですか?

Golang を使用して RESTful API を構築し、Docker にデプロイするにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-01 16:38:02675ブラウズ

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"

    "github.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 にデプロイするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。