Of course, these samples are easy to do ... but the interesting thing will be to see how people can put it together to make some relevant apps.
package main
import (
"fmt"
"html/template"
"io/ioutil"
"log"
"net/http"
)
const API_KEY = "ADD YOUR API KEY HERE"
func main() {
http.HandleFunc("/", handleRoot)
http.HandleFunc("/nearby", handleNearby)
http.ListenAndServe("localhost:8080", nil)
}
func handleRoot(w http.ResponseWriter, r *http.Request) {
t, err := template.New("main").ParseFiles("main.go.html")
if err != nil {
log.Fatal(err)
}
if err = t.ExecuteTemplate(w, "main", nil); err != nil {
log.Fatal(err)
}
}
func handleNearby(w http.ResponseWriter, r *http.Request) {
lat, long, radius, typ := r.FormValue("lat"), r.FormValue("long"), r.FormValue("radius"), r.FormValue("types")
res, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
data, err := ioutil.ReadAll(res.Body)
res.Body.Close()
if err != nil {
log.Fatal(err)
}
fmt.Fprintf(w, "%s", string(data))
}
//file: main.go.html
{{define "main"}}
<!DOCTYPE html>
<html>
<body>
<form action="/nearby" method="GET">
Latitude: <input type="text" name="lat" value="12.9833"/><br/>
Longitude: <input type="text" name="long" value="77.5833" /><br/>
Radius: <input type="text" name="radius" value="500" /><br/>
Type: <select name="types">
<option>restaurant</option>
<option>bank</option>
<option>cafe</option>
<option>bus_station</option>
<option>pharmacy</option>
</select> <br/>
<input type="submit" />
</form>
</body>
</html>
{{end}}