Go Programming/Simple Web App
There are multiple packages in the standard library. One of those packages is called net/http. The package can be used to make simple web applications. Here is a simple example that will output Hello world! when localhost:8080 is visited.
package main
import (
"fmt"
"log"
"net/http"
)
func helloFunc(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello world!")
}
func main() {
http.HandleFunc("/", helloFunc)
http.ListenAndServe(":8080", nil)
}
You might see some new things that appeared.
import (
"fmt"
"net/http"
)
As you see, the fmt package has been imported again. However, the net/http package has also been imported.
func helloFunc(w http.ResponseWriter, r *http.Request)
A function called helloFunc is declared. The http.ResponseWriter type is used in the function to construct an HTTP response. The *http.Request is a pointer to a HTTP request received by a server or something be sent by a client.
fmt.Fprintf(w, "Hello world!")
In this line, the string "Hello world!" is being written to the ResponseWriter in order for it to be displayed in the output.
func main() {
http.HandleFunc("/", helloFunc)
http.ListenAndServe(":8080", nil)
}
The main function has been declared with two actions. The handler function, helloFunc has been connected to the "/" route. Finally, the ListenAndServe has been called with a port that is "8080" and no router has been given to the second parameter.
Now, when the program is ran, Hello world! is expected to be shown on the website: localhost:8080.