Artikel ini menerangkan cara membina API RESTful Golang. Mula-mula, bina API RESTful dengan mengimport perpustakaan yang diperlukan, mentakrifkan model data dan mencipta laluan. Kedua, cipta dan gunakan middleware untuk pengesahan menggunakan go-chi/chigot dan go-chi/chi/middleware. Artikel tersebut selanjutnya memberikan contoh kes praktikal untuk menunjukkan aplikasi praktikal penyelesaian itu. . Cipta laluan:
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"` }
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")
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) { // ... }
go get github.com/go-chi/chi go get github.com/go-chi/chi/middleware
Kes praktikal
Contoh: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)
})
}
Atas ialah kandungan terperinci Bagaimana untuk membina API RESTful Golang dan menggunakan perisian tengah untuk pengesahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!