You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
969 B
Go
44 lines
969 B
Go
1 year ago
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"log"
|
||
|
"net/http"
|
||
|
"strconv"
|
||
|
)
|
||
|
|
||
|
func home(w http.ResponseWriter, r *http.Request) {
|
||
|
if r.URL.Path != "/" {
|
||
|
http.NotFound(w, r)
|
||
|
return
|
||
|
}
|
||
|
w.Write([]byte("hello from Snippetbox"))
|
||
|
}
|
||
|
|
||
|
func snippetView(w http.ResponseWriter, r *http.Request) {
|
||
|
id, err := strconv.Atoi(r.URL.Query().Get("id"))
|
||
|
if err != nil || id < 1 {
|
||
|
http.NotFound(w, r)
|
||
|
return
|
||
|
}
|
||
|
fmt.Fprintf(w, "Display a specific snippet with ID %d...", id)
|
||
|
}
|
||
|
func snippetCreate(w http.ResponseWriter, r *http.Request) {
|
||
|
if r.Method != "POST" {
|
||
|
w.Header().Set("Allow", http.MethodPost)
|
||
|
http.Error(w, "Method Not Allowed", http.StatusMethodNotAllowed)
|
||
|
return
|
||
|
}
|
||
|
w.Write([]byte("Create a new snippet"))
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
mux := http.NewServeMux()
|
||
|
mux.HandleFunc("/", home)
|
||
|
mux.HandleFunc("/snippet/view", snippetView)
|
||
|
mux.HandleFunc("/snippet/create", snippetCreate)
|
||
|
log.Print("Starting server on :4000")
|
||
|
err := http.ListenAndServe(":4000", mux)
|
||
|
log.Fatal(err)
|
||
|
}
|