¿Cómo construir un servidor web simple con Golang?

Golang es un lenguaje de programación procedimental ideal para construir software simple, confiable y eficiente. 

Creación de servidores web usando Golang: 

Inicializar un proyecto

Cree una carpeta de proyecto con un archivo .go dentro, por ejemplo. servidor.ir.
 

Estructura de directorios:

El archivo server.go :

Go

package main
 
import (
    "fmt"
    "log"
    "net/http"
)
 
func main() {
 
    // API routes
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello world from GfG")
    })
    http.HandleFunc("/hi", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hi")
    })
 
    port := ":5000"
    fmt.Println("Server is running on port" + port)
 
    // Start server on port specified above
    log.Fatal(http.ListenAndServe(port, nil))
}

Ejecute el servidor usando el siguiente comando (asegúrese de estar en el directorio del proyecto):

go run server.go

Nota:   Debe detener el servidor con Ctrl + C y reiniciar con el mismo comando siempre que se cambie el archivo server.go. 
 

Consola:

Abra el navegador web deseado y cualquiera de estas URL para verificar si el servidor se está ejecutando:

http://localhost:5000/ or http://localhost:5000/hi

Producción:

Sirviendo archivos estáticos:

Cree una carpeta estática con todos los archivos estáticos.
Ejemplo de estructura de directorio:

Ejemplos de archivos estáticos:

HTML

<html>
  <head>
    <title>Home</title>
  </head>
  <body>
    <h2>Home page</h2>
  </body>
</html>
  • El archivo about.html

HTML

<html>
  <head>
    <title>About</title>
  </head>
  <body>
    <h2>about page!</h2>
  </body>
</html>

Ahora edite el archivo server.go:

Go

package main
 
import (
    "fmt"
    "log"
    "net/http"
)
 
func main() {
 
    // API routes
 
    // Serve files from static folder
    http.Handle("/", http.FileServer(http.Dir("./static")))
 
    // Serve api /hi
    http.HandleFunc("/hi", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hi")
    })
 
    port := ":5000"
    fmt.Println("Server is running on port" + port)
 
    // Start server on port specified above
    log.Fatal(http.ListenAndServe(port, nil))
 
}

Verificando si se sirven archivos estáticos:

Publicación traducida automáticamente

Artículo escrito por omkarphansopkar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *