Maison > développement back-end > Golang > le corps du texte

Comment servir des pages Web et des routes API sur le même port avec différents modèles de handle dans Go ?

Barbara Streisand
Libérer: 2024-11-20 14:21:17
original
562 Les gens l'ont consulté

How to Serve Web Pages and API Routes on the Same Port with Different Handle Patterns in Go?

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal