Servir des pages Web et des routes API sur le même port avec différents modèles de handle
Dans une application Web où les pages Web et les routes API ont besoin pour être servi sur le même port, il est possible d'y parvenir en utilisant le package net/http fourni par la bibliothèque standard Go. Le principe clé est la priorité des modèles plus longs sur les plus courts.
Considérez l'extrait de code suivant :
fs := http.FileServer(http.Dir("server/webapps/play_maths")) http.Handle("/", fs) // Serves static web pages from the specified directory http.Handle("/api", api.UserRoutes()) // Handles API routes using the UserRoutes function
Dans cet exemple, le gestionnaire de fichiers est enregistré pour le chemin de l'URL racine "/ ", ce qui signifie qu'il traitera toutes les requêtes qui ne correspondent pas à un modèle plus long. Le gestionnaire de routes API est ensuite enregistré pour le chemin "/api". Étant donné que "/api" est un modèle plus long que "/", toute requête commençant par "/api" sera dirigée vers le gestionnaire de routes API, tandis que toutes les autres requêtes seront dirigées vers le gestionnaire de fichiers.
Remarque qu'il est important de s'assurer qu'aucun fichier n'existe dans le répertoire "/api", car ils seraient inaccessibles en raison de la règle de priorité. En tirant parti de la fonctionnalité de priorité des modèles, il est possible de diffuser des pages Web et des routes API sur le même port à l'aide de différents gestionnaires.
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!