【Go】Echo JsonにTemplateから生成したHTMLを埋め込んで返す
今回やりたかったことは以下。
・HTMLのテンプレートを変数等に定義しておく。
・テンプレートを元に動的な部分をHTMLに埋め込む。
・生成したHTMLをJSONにいれてレスポンスとして返す。
package main import( "net/http" "github.com/labstack/echo" ) // ViewData type ViewData struct { Title string `json:"id"` Contents string `json:"html"` } // レスポンスを表す構造体を定義 type JsonFormat struct { Id int `json:"id"` Html string `json:"name"` } func main() { e := echo.New() e.GET("/", func(c echo.Context) error { var buffer bytes.Buffer var html = "<div><h1>{{.Title}}</h1><p>{{.Contents}}</p></div>" var t = template.Must(template.New("html").Parse(html)) if err := t.Execute(&buffer, data); err != nil { return echo.NewHTTPError(http.StatusInternalServerError, "Server Error") } else { return c.JSON(http.StatusOK, Advertise { Id: 1, Html: buffer.String(), }) } }) }
以上です