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

WBOY
Freigeben: 2024-06-04 14:16:56
Original
894 Leute haben es durchsucht

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"
)
Nach dem Login kopieren
控 Definition Controller:

type Product struct {
    ID    int    `json:"id"`
    Name  string `json:"name"`
    Price float64 `json:"price"`
}
Nach dem Login kopieren
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")
Nach dem Login kopieren

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) {
    // ...
}
Nach dem Login kopieren

Anwendungs-Middleware:

go get github.com/go-chi/chi
go get github.com/go-chi/chi/middleware
Nach dem Login kopieren
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)
    })
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage