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

WBOY
リリース: 2024-06-01 16:38:02
オリジナル
650 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!