Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstellt man eine Golang RESTful API und verwendet Middleware zur Authentifizierung?

Wie erstellt man eine Golang RESTful API und verwendet Middleware zur Authentifizierung?

WBOY
WBOYOriginal
2024-06-04 14:16:56895Durchsuche

In diesem Artikel wird erklärt, wie man eine Golang RESTful API erstellt. Erstellen Sie zunächst eine RESTful-API, indem Sie die erforderlichen Bibliotheken importieren, das Datenmodell definieren und Routen erstellen. Zweitens erstellen und wenden Sie Middleware für die Authentifizierung mit go-chi/chigot und go-chi/chi/middleware an. Der Artikel enthält außerdem ein praktisches Fallbeispiel, um die praktische Anwendung der Lösung zu demonstrieren.

如何构建 Golang RESTful API,并使用中间件进行身份验证?

Wie eine Golang -RESTful -API erstellen und Middleware für die Authentifizierung verwenden. Route:

import (
    "encoding/json"
    "fmt"
    "log"
    "net/http"

    "github.com/gorilla/mux"
)
控 Definition Controller:

type Product struct {
    ID    int    `json:"id"`
    Name  string `json:"name"`
    Price float64 `json:"price"`
}
2. Middleware zur Identitätsprüfung verwenden

Installation der Middleware:

router := mux.NewRouter()
router.HandleFunc("/products", GetProducts).Methods("GET")
router.HandleFunc("/products/{id}", GetProduct).Methods("GET")
router.HandleFunc("/products", CreateProduct).Methods("POST")
router.HandleFunc("/products/{id}", UpdateProduct).Methods("PUT")
router.HandleFunc("/products/{id}", DeleteProduct).Methods("DELETE")

Middleware erstellen:

func GetProducts(w http.ResponseWriter, r *http.Request) {
    // ...
}

func GetProduct(w http.ResponseWriter, r *http.Request) {
    // ...
}

func CreateProduct(w http.ResponseWriter, r *http.Request) {
    // ...
}

func UpdateProduct(w http.ResponseWriter, r *http.Request) {
    // ...
}

func DeleteProduct(w http.ResponseWriter, r *http.Request) {
    // ...
}

Anwendungs-Middleware:

go get github.com/go-chi/chi
go get github.com/go-chi/chi/middleware
E

Praktischer Koffer

Beispiel:

func AuthMiddleware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        // ... 检查认证信息 ...
        if !authorized {
            http.Error(w, "Unauthorized", http.StatusUnauthorized)
            return
        }
        // ... 继续处理请求 ...
        next.ServeHTTP(w, r)
    })
}

Das obige ist der detaillierte Inhalt vonWie erstellt man eine Golang RESTful API und verwendet Middleware zur Authentifizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn