Maison  >  Article  >  développement back-end  >  Comment créer une API RESTful à l'aide de Golang et la déployer sur Docker ?

Comment créer une API RESTful à l'aide de Golang et la déployer sur Docker ?

WBOY
WBOYoriginal
2024-06-01 16:38:02614parcourir

Créez une API RESTful dans Golang et déployez-la sur Docker : créez un projet Golang et définissez la structure des données. Écrivez des gestionnaires d'API, définissez des routes et démarrez des serveurs HTTP. Créez un fichier Docker, créez une image Docker et exécutez un conteneur Docker. Cas pratique : tester l'API avec Postman ou curl. Comment créer une API RESTful dans Golang et la déployer sur Docker

Créer un fichier Docker 如何使用 Golang 构建 RESTful API 并部署到 Docker?

go mod init my-api

Créer une image Docker

type User struct {
    ID     int    `json:"id"`
    Name   string `json:"name"`
    Email  string `json:"email"`
    Age    int    `json:"age"`
}
Exécuter le conteneur Docker
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) {
    // ...
}

Cas pratique :

Vous pouvez déployer cette API sur Docker et utiliser Postman ou curl pour les tests. Par exemple, créez un utilisateur nommé "test" :

FROM golang:1.18-alpine

WORKDIR /usr/src/app

COPY . ./

RUN go build -o my-api

CMD ["my-api"]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn