Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
WBOYasal
2024-06-04 14:16:56889semak imbas

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

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

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) {
    // ...
}
:

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

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!

Kenyataan:
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