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.
import ( "encoding/json" "fmt" "log" "net/http" "github.com/gorilla/mux" )
type Product struct { ID int `json:"id"` Name string `json:"name"` Price float64 `json:"price"` }
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
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!