Golang Web Server Hello World
2017-09-25
An example of rendering "Hello World!" using golang as a web server with it's built in "net/http" package.
package main
import (
"log"
"net/http"
)
func main() {
mux := http.NewServeMux()
server := &http.Server{
Addr: ":8080",
Handler: mux,
}
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello World!"))
})
log.Fatal(server.ListenAndServe())
}
That is perhaps a little more than strictly necessary for the most basic web server hello world, but I think it's a more useful example which you can build on.
package mainThe first golang file is always package main. It has a function main() which will be run when you type go run hello_world.go.
import (
"log"
"net/http"
)Import the packages "log" and "net/http" from golang's standard library.
func main() {Define the main function which will be executed when this program is run.
mux := http.NewServeMux()Mux is an abbreviation for multiplexing. In our context it is what we register our url paths on, giving it functions to call for each. We create a new http.ServeMux and assign it to the variable mux.
server := &http.Server{
Addr: ":8080",
Handler: mux,
}Create a server listening on port 8080 and using the mux we created earlier to handle web requests.
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello World!"))
})We register the path "/" on our mux and give it a function to respond to requests with. Now when our server gets a request for the path "/" it will call this function to write the response.
log.Fatal(server.ListenAndServe())Start the server and log any errors if the server returns one.