Maison >développement back-end >Golang >Comment servir des pages Web et des routes API sur le même port avec différents modèles de handle ?

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

Susan Sarandon
Susan Sarandonoriginal
2024-11-23 08:11:10626parcourir

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

Servir des pages Web et des routes API sur le même port avec différents modèles de handle

Dans un scénario d'application Web, il peut être pratique de servir à la fois des pages Web statiques et des API itinéraires sur la même adresse de port. Cela permet une architecture rationalisée et une utilisation efficace des ressources. Pour y parvenir en utilisant différents modèles de poignées, suivez ces étapes :

1. Enregistrer un gestionnaire de fichiers

Enregistrez un serveur de fichiers pour servir des fichiers statiques. Dans cet exemple, il est utilisé pour servir les fichiers du répertoire "server/webapps/play_maths" au chemin racine (/) :

fs := http.FileServer(http.Dir("server/webapps/play_maths"))
http.Handle("/", fs)

2. Enregistrez API Handler

Créez un routeur pour gérer les routes API. Dans ce cas, UserRoutes() définit des routes pour créer des utilisateurs et récupérer tous les utilisateurs :

func UserRoutes() *mux.Router {
    router := mux.NewRouter().StrictSlash(true)
    router.HandleFunc("/user/create", api.CreateUser)
    router.HandleFunc("/user/get/all", api.GetAllUsers)
    return router
}

3. Attacher le gestionnaire d'API au chemin

Enregistrez le routeur API sur un chemin racine spécifique, tel que "/api/". Cela garantit que toutes les requêtes commençant par "/api/" seront traitées par les routes API :

http.Handle("/api/", UserRoutes())

Remarque : L'ordre d'enregistrement des routes est important. Les modèles plus longs ont priorité sur les plus courts. Par conséquent, il est important d’enregistrer les routes API les plus spécifiques avant le gestionnaire de fichiers général. Cela empêche les requêtes adressées aux routes API d'être interceptées par le gestionnaire de fichiers.

En suivant ces étapes, vous pouvez servir à la fois des pages Web statiques et des routes API sur la même adresse de port tout en conservant des modèles de gestion différents. Cela offre de la flexibilité et améliore les performances en réduisant le besoin de plusieurs instances de serveur.

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!

Déclaration:
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