package main import ( "encoding/json" "net/http" ) type JsonHandler func(http.ResponseWriter, *http.Request) func (h JsonHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json") h(w, req) } type JSONError struct { Reason string `json:"reason"` } type JSONMessage struct { Message string `json:"message"` } func apiInfo(w http.ResponseWriter, req *http.Request) { version := struct { Version string `json:"version"` Name string `json:"name"` Routes []string `json:"routes"` }{ Version: "0.1", Name: "itslog", Routes: []string{ "/api/v0/info/", }, } if err := json.NewEncoder(w).Encode(version); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } }