Introduction
Go (Golang) is a versatile language that can be used for web development. In this guide, we'll walk you through the process of writing a basic web application in Go, including creating routes, handling requests, and rendering HTML templates. You'll learn the key concepts and be provided with sample code to get started.
Creating a Web Server
To create a web application in Go, you start by creating a web server. This server listens on a port and handles incoming HTTP requests. Here's an example of creating a simple web server:
package main
import (
`fmt`
`net/http`
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, `Hello, Go Web Application!`)
}
func main() {
http.HandleFunc(`/`, handler)
http.ListenAndServe(`:8080`, nil)
}
In this code, we create an HTTP server that listens on port 8080 and responds with `Hello, Go Web Application!` to all incoming requests.
Routing and Handling Requests
In a web application, routing is essential for directing requests to the appropriate handlers. You can define routes and handle different HTTP methods. Here's an example of handling a specific route:
package main
import (
`fmt`
`net/http`
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, `Hello, Web Application!`)
}
func main() {
http.HandleFunc(`/hello`, helloHandler)
http.ListenAndServe(`:8080`, nil)
}
In this code, we define a route at `/hello` and respond with `Hello, Web Application!` when that route is accessed.
Rendering HTML Templates
A basic web application often involves rendering HTML templates to display dynamic content. You can use the `html/template` package to achieve this. Here's an example of rendering a simple HTML template:
package main
import (
`fmt`
`html/template`
`net/http`
`os`
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
t, _ := template.New(`webpage`).Parse(`<html><body><h1>Hello, {{.}}!</h1></body></html>`)
t.Execute(w, `Web Application`)
}
func main() {
http.HandleFunc(`/hello`, helloHandler)
http.ListenAndServe(`:8080`, nil)
}
In this code, we create an HTML template and use it to render a dynamic `Hello, Web Application!` message in the response.
Further Resources
To continue learning about writing web applications in Go, consider these resources:
- net/http Package Documentation - Official Go documentation for the `net/http` package.
- html/template Package Documentation - Official Go documentation for the `html/template` package.
