>  기사  >  백엔드 개발  >  Golang을 사용하여 RESTful API를 구축하고 Docker에 배포하는 방법은 무엇입니까?

Golang을 사용하여 RESTful API를 구축하고 Docker에 배포하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-06-01 16:38:02613검색

Golang에서 RESTful API를 구축하고 Docker에 배포: Golang 프로젝트를 생성하고 데이터 구조를 정의합니다. API 핸들러를 작성하고, 경로를 정의하고, HTTP 서버를 시작하세요. Dockerfile을 만들고, Docker 이미지를 빌드하고, Docker 컨테이너를 실행하세요. 실제 사례: Postman 또는 컬을 사용하여 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"`
}

Write 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.