Maison >développement back-end >Golang >Comment Go Middleware peut-il simplifier la gestion des demandes de contrôle en amont pour CORS ?
Gestion des demandes de contrôle en amont dans Go pour CORS
Le partage de ressources d'origine croisée (CORS) nécessite souvent que les navigateurs envoient des requêtes OPTIONS de contrôle en amont pour vérifier si une demande réelle peut être envoyée en toute sécurité. Gérer efficacement ces requêtes de contrôle en amont dans Go peut être un défi.
Une approche consiste à vérifier la méthode de requête dans une fonction de gestionnaire à l'aide du package net/http standard. Cependant, cela peut être fastidieux, en particulier pour plusieurs gestionnaires.
Alternativement, le package mux de Gorilla offre une solution plus propre. Vous pouvez enregistrer un gestionnaire "OPTIONS" distinct pour chaque chemin d'URL pertinent. Bien que les deux méthodes soient viables, elles ne sont pas toujours les plus élégantes.
Solution améliorée utilisant un middleware
Pour simplifier davantage, envisagez d'utiliser une approche middleware. En enveloppant vos gestionnaires REST avec une fonction middleware, vous pouvez séparer la logique de gestion CORS de la gestion réelle des requêtes. Par exemple, en utilisant net/http :
func corsHandler(h http.Handler) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if (r.Method == "OPTIONS") { // Handle preflight here } else { h.ServeHTTP(w,r) } } }
Vous pouvez ensuite envelopper votre gestionnaire REST comme ceci :
http.Handle("/endpoint/", corsHandler(restHandler))
Cette approche fournit un moyen propre et réutilisable de gérer les demandes de contrôle en amont, permettant vous de vous concentrer sur votre logique métier tout en garantissant des interactions cross-origin transparentes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!