Créer un serveur Web en langage Go (net / http) (1)

Évidemment, vous pouvez mettre en place un serveur Web en golang (langage Go), ce qui permet la programmation Web.

J'ai également de l'expérience dans la création de serveurs Web simples avec golang et dans le développement de services. A cette époque, j'utilisais un framework web appelé " gin </ font>".

gin est ici

Cette fois, je voudrais créer un serveur Web en utilisant uniquement la bibliothèque (pure golang) sans compter sur le framework Web. J'ai fait référence au document officiel https://golang.org/doc/articles/wiki/. Si vous souhaitez étudier dans l'anglais d'origine

La grammaire de base du golang n'est pas abordée ici. Veuillez étudier à l'avance. Ma recommandation est le document officiel "A Tour of Go" </ font>. Cliquez ici pour le lien → "A Tour of Go"

De plus, étant donné que la programmation est effectuée dans l'environnement Windows cette fois, si les commandes, etc. sont différentes, veuillez essayer avec la commande qui convient à votre système d'exploitation à chaque fois.

1. Créez un programme pour configurer un serveur Tout d'abord, créez un répertoire appelé "golang_server" dans GOPATH. J'ai une structure de répertoire "GOPATH / src / Go_Scripts / golang_server". Veuillez créer un répertoire à n'importe quel emplacement et le déplacer vers le répertoire.
GOPATH\src\Go_Scripts>mkdir golang_server
GOPATH\src\Go_Scripts>cd golang_server
GOPATH\src\Go_Scripts\golang_server>

Nous allons créer des programmes dans ce répertoire.

server1.go


package main

import (
	"fmt"
	"log"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	text := "You-saku."
	fmt.Fprint(w, "Hi there, I'm ", text)
}

func main() {
	http.HandleFunc("/", handler)
	log.Fatal(http.ListenAndServe(":8080", nil))
}

Expliquons le code. Tout d'abord, les packages nécessaires à la mise en place d'un serveur Web

1."log" 2."net/http" Importer. Cela ne commencera pas sans cela.

Ensuite, considérez les fonctions "handler" et "main".

func handler(w http.ResponseWriter, r *http.Request) {
	text := "You-saku."
	fmt.Fprint(w, "Hi there, I'm ", text)
}

func main() {
	http.HandleFunc("/", handler)
	log.Fatal(http.ListenAndServe(":8080", nil))
}

Il y a une description "http.HandleFunc (" / ", handler)" </ strong> dans la fonction principale. Il s'agit d'une méthode appelée HandleFunc du module http, et l'argument est ("access URL", request processing method) </ font>.

Au fait, si le premier argument est "/", ce sera localhost. De plus, par exemple, si vous spécifiez "/ profile" comme premier argument, la requête sera traitée lorsque vous accéderez avec "localhost: port / profile". Vous pouvez obtenir une meilleure compréhension en modifiant vous-même le code.

Vient ensuite la fonction "handler" </ strong> appelée dans http.HandleFunc. C'est la fonction qui gère la demande réelle. En règle générale, l'argument est (variable http.ResponseWriter, variable * http.Request) </ font>. C'est comme une règle, alors gardez-la à l'esprit.

À propos, http.ResponceWriter sécurise un emplacement pour écrire sur le serveur Web. Ainsi, fmt.Fprintf dans la fonction de gestionnaire reçoit "w" </ strong> comme argument. J'écris à ce w et l'affiche sur la page Web.

Enfin, "log.Fatal" </ strong> est expliqué. Il s'agit d'enregistrer le journal de communication. Il prend "http.ListenAndServe (": 8080 ", nil)" </ strong> comme argument, mais si une erreur se produit dans http.ListenAndServe, elle sera enregistrée. En outre, "http.ListenAndServe ()" </ strong> est une fonction qui définit le numéro de port réellement utilisé pour la communication http. L'argument sera (": numéro de port", erreur) </ font>. Cette fois, j'ai spécifié le numéro de port 8080. Veuillez noter que lorsque vous spécifiez le numéro de port, veuillez définir : numéro de port </ font>. Si ":" est omis, une erreur se produira.

2. Exécution et confirmation du programme Maintenant, exécutons le programme.
GOPATH\src\Go_Scripts\golang_server>go run server1.go

Ensuite, certaines personnes recevront un avertissement de sécurité. Dans ce cas, cliquez sur "Autoriser l'accès".

Accédez ensuite à [http: // localhost: 8080 /](http: // localhost: 8080 /) avec votre navigateur. Ensuite, vous pouvez accéder à une telle page. go_http1.png

Je pense que c'est une bonne idée de changer les caractères affichés par vous-même.

Enfin Comment était-ce? Du point de vue de moi-même qui a utilisé le gin, j'avais l'impression qu'il y avait de nombreuses parties pour écrire du code. Je dois faire diverses choses moi-même, mais je sens que j'ai pu en apprendre plus sur le golang. Ensuite, nous utiliserons le package "html / template" qui fonctionne avec les fichiers .html pour en faire une page Web.

Merci d'avoir lu jusqu'à la fin.

Recommended Posts