- #go
- #golang
- #http
- #web-server
Servidor web básico con Go (Golang)
Escrito por Jhon Achata el 17 de diciembre de 2022
En esta ocasión realizaremos un servidor web básico con Go (Golang), para este ejemplo usaremos los módulos que vienen por defecto con Go
Primeros pasos
Para iniciar con nuestra aplicación nos dirigimos a la carpeta donde guardaremos el proyecto, en mi caso: /home/jhon/Code/go/goserver
.
Abrimos una terminal, nos ubicamos en la carpeta y ejecutamos el comando para inicializar nuestra aplicación
Este comando creará el archivo go.mod
en la carpeta del proyecto, el archivo contiene el nombre del módulo y la versión de Go con la que generamos el módulo (para este ejemplo estaré usando la versión 1.19
de Go)
Hola mundo en Go
Bien, ahora vamos a escribir las primeras líneas de la aplicación con un clásico Hola Mundo, para esto necesitamos crear un archivo, este se llamará main.go
, dentro del archivo escribimos lo siguiente:
Guardamos y nos dirigimos a la terminal, donde ejecutaremos el siguiente comando go run main.go
, esto nos devolverá el Hola Mundo en la terminal.
Listo, ya logramos imprimir el Hola Mundo en la terminal, pero esto no es lo que queremos lograr, aún nos queda algo de trabajo, así que manos a la obra.
Servidor básico con el módulo http
Primero hagamos unos cambios en el archivo main.go
, haremos uso del módulo http de Go para inicializar nuestro servidor
Si vamos a la terminal, cancelamos la ejecución anterior (ctrl + c
) y volvemos a ejecutar el comando go run main.go
, veremos lo siguiente:
Si vamos al navegador y escribimos http://localhost:5000
, podremos apreciar que nos devuelve un error 404, esto es por que aún no hemos definido ninguna ruta
Primera ruta de nuestra aplicación
Ahora escribamos la primera ruta de nuestra aplicación:
Justo debajo de la instancia de ServeMux
, agregamos nuestra primera ruta:
Vamos a la terminal y reiniciemos el servidor, si nos dirigimos al navegador podremos ver el Hola Mundo:
Ahora podemos crear tantas rutas como queramos, por ejemplo:
Pero qué si deseamos usar algún archivo html
?
Servir archivos estáticos
Para lograrlo, hacemos uso del módulo html/template
que también viene con Go
, veamos:
El contenido del archivo acerca.html
, tiene una estructura básica
Reiniciamos el servidor y vamos al navegador, allí podremos visualizar lo siguiente: