Go - HTTP Server (net/http)
          Beginner 10/10
          Teacher 10/10
          Architect 10/10
        
        
        
        
Tip: See the capstone Go - Sample REST API for a complete working example using net/http and JSON.
Minimal Server
package main
import (
  "encoding/json"
  "log"
  "net/http"
)
type Health struct{ Status string `json:"status"` }
func main(){
  http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request){
    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode(Health{Status: "ok"})
  })
  log.Println("listening on :8080")
  log.Fatal(http.ListenAndServe(":8080", nil))
}
Routing Options
- http.ServeMuxfor simple routing.
- Third-party routers exist, but stick to stdlib first.
JSON & Headers
Set Content-Type and use json.NewEncoder/Decoder.
Exercises
- Add a /timeendpoint that returns current time in RFC3339.
- Return 404 for unknown routes.