Comment créer un serveur Web de base dans Go
Go est un langage de programmation passionnant pour créer des applications Web modernes ainsi que des logiciels système. Il a balayé l’industrie technologique lors de sa sortie et alimente des services tels que Docker, Kubernetes, Terraform, Dropbox et Netflix.
De plus, la collection robuste de packages intégrés de Go en fait un excellent choix pour la programmation Web. Cet article vous apprendra comment écrire un serveur Web de base dans Go.
Importation des packages nécessaires
Le package net/HTTP offre tout le nécessaire pour créer des serveurs et des clients Web. Ce package expose plusieurs fonctions utiles pour gérer la programmation Web.
Vous pouvez l’importer en ajoutant la ligne ci-dessous en haut de votre code source :
Nous allons également utiliser le fmt package pour le formatage des chaînes et le Journal package pour la gestion des erreurs. Vous pouvez soit les importer individuellement comme indiqué ci-dessus, soit factoriser tous les packages à l’aide d’une seule instruction d’importation :
Vous pouvez continuer à écrire la fonction principale après avoir importé les packages requis. Allez-y et enregistrez le fichier source avec un .aller extension. Si vous utilisez Vim, utilisez la commande ci-dessous pour enregistrer et quitter Vim :
Écrire la fonction principale
Les programmes Go vivent dans la fonction principale, appelée à juste titre « main ». Vous devrez implémenter l’appel au serveur ici. Ajoutez les lignes suivantes dans votre code source et voyez ce qu’elles font :
Nous définissons la fonction principale à l’aide de la fonction mot-clé. Go a des règles strictes concernant le placement de l’accolade d’ouverture, alors assurez-vous que l’accolade de départ est sur la bonne ligne. La première instruction dans main définit que toutes les requêtes Web arrivant à la racine ( « https://lizengo.fr/ » ) chemin sera géré par indice une fonction du type http.HandlerFunc .
La deuxième ligne démarre le serveur Web via le http.Écouteretservir une fonction. Il signale au serveur d’écouter en permanence les requêtes HTTP entrantes sur le port 8080 de la machine hôte. Le deuxième paramètre de cette fonction est nécessaire pour bloquer le programme jusqu’à la fin.
Étant donné que http.ListenAndServe renvoie toujours une erreur, nous enveloppons cet appel dans un log.Fatal appeler. Cette instruction consigne tous les messages d’erreur générés côté serveur.
Implémentation de la fonction de gestionnaire
Comme vous pouvez le voir, la fonction principale appelle l’index de la fonction de gestionnaire pour traiter les demandes des clients. Cependant, nous n’avons pas encore défini cette fonction pour notre serveur.
Ajoutons les instructions nécessaires pour rendre la fonction index utilisable :
Cette fonction prend deux arguments différents de type http.ResponseWriter et http.Demande . Le paramètre http.ResponseWriter contient la réponse du serveur à la demande entrante, qui se présente sous la forme d’un objet http.Request.
La fonction Fprintf du package fmt est utilisée pour afficher et manipuler des chaînes de texte. Nous l’utilisons pour afficher la réponse du serveur à nos requêtes Web. Finalement, le r.URL.Path Le composant est utilisé pour récupérer les données qui viennent après le chemin racine.
Ajouter tous les morceaux ensemble
Votre serveur Web Go devrait être prêt une fois que vous avez ajouté toutes les pièces ensemble. Le code doit ressembler à ce qui suit :
La première ligne est nécessaire pour compiler ce code de serveur Web Go en tant que fichier exécutable.
Créer des serveurs Web avec Go
Les packages de bibliothèques robustes de Go facilitent la programmation Web pour les débutants. Vous pouvez développer rapidement des serveurs Web simples avec seulement quelques lignes de code.
De plus, les puissantes fonctionnalités de test de ce langage de programmation facilitent également la mise en œuvre des méthodologies de programmation Agile. Il s’agit d’un groupe de stratégies de développement logiciel basées sur le développement itératif et une collaboration étendue entre les équipes.