Si quieres que renderizar JSON y HTML sea aún más simple, está el paquete
github.com/unrolled/render
. Este paquete fue inspirado por el
martini-contrib/render
y es mi amparo cuando se trata de procesar datos
para su presentación en mis aplicaciones web.
package main
import (
"net/http"
"gopkg.in/unrolled/render.v1"
)
func main() {
r: = render.New(render.Options{})
mux: = http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte ("Bienvenido, ahora visita nuestras subpáginas."))
})
mux.HandleFunc ("/datos", func(w http.ResponseWriter, r *http.Request) {
r.Data(w, http.StatusOK, []byte ("Algunos datos binarios aquí."))
})
mux.HandleFunc("/json", func(w http.ResponseWriter, r *http.Request) {
r.JSON(w, http.StatusOK, map[string]string {"hola": "json"})
})
mux.HandleFunc("/html", func(w http.ResponseWriter, r *http.Request) {
// asume que tienes una plantilla en ./plantillas llamada "ejemplo.tmpl"
// $ mkdir -p plantillas && echo "<h1>Hola {{.}}.</h1>"> plantillas/ejemplo.tmpl
r.HTML(w, http.StatusOK, "ejemplo", nil)
})
http.ListenAndServe(":8080", mux)
}
render.New()
.{{.yield}}
y un diseño con
plantillas HTML.