Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk membina API RESTful Golang dan menggunakan perisian tengah untuk pengesahan?

Bagaimana untuk membina API RESTful Golang dan menggunakan perisian tengah untuk pengesahan?

WBOY
Lepaskan: 2024-06-04 14:16:56
asal
926 orang telah melayarinya

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"
)
Salin selepas log masuk
控 Pengawal definisi: 如何构建 Golang RESTful API,并使用中间件进行身份验证?

type Product struct {
    ID    int    `json:"id"`
    Name  string `json:"name"`
    Price float64 `json:"price"`
}
Salin selepas log masuk
e

2 Gunakan middleware untuk pengesahan identiti

Pemasangan 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")
Salin selepas log masuk

Cipta middleware aplikasi:

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) {
    // ...
}
Salin selepas log masuk
:

go get github.com/go-chi/chi
go get github.com/go-chi/chi/middleware
Salin selepas log masuk
E

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)
    })
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan