- move Send from server to rex (top level).tags/v0.9.0
package rex | package rex | ||||
import ( | import ( | ||||
"bytes" | |||||
"encoding/json" | |||||
"net/http" | |||||
"path" | "path" | ||||
"github.com/goanywhere/env" | "github.com/goanywhere/env" | ||||
// Shortcut for string based map. | // Shortcut for string based map. | ||||
type M map[string]interface{} | type M map[string]interface{} | ||||
// Sends the HTTP response in JSON. | |||||
func Send(w http.ResponseWriter, v interface{}) { | |||||
var buffer = new(bytes.Buffer) | |||||
defer func() { | |||||
buffer.Reset() | |||||
}() | |||||
w.Header().Set("Content-type", "application/json; charset=utf-8") | |||||
if err := json.NewEncoder(buffer).Encode(v); err == nil { | |||||
w.Write(buffer.Bytes()) | |||||
} else { | |||||
http.Error(w, err.Error(), http.StatusInternalServerError) | |||||
} | |||||
} | |||||
// Renders a view (Pongo) and sends the rendered HTML string to the client. | |||||
// Optional parameters: value, local variables for the view. | |||||
// func Render(filename string, v ...interface{}) {} | |||||
func init() { | func init() { | ||||
var basedir = fs.Getcd(2) | var basedir = fs.Getcd(2) | ||||
env.Set("basedir", basedir) | env.Set("basedir", basedir) |
package rex | package rex | ||||
import ( | import ( | ||||
"bytes" | |||||
"encoding/json" | |||||
"flag" | "flag" | ||||
"fmt" | "fmt" | ||||
"net/http" | "net/http" | ||||
self.build().ServeHTTP(w, r) | self.build().ServeHTTP(w, r) | ||||
} | } | ||||
// Sends the HTTP response in JSON. | |||||
func (self *server) Send(w http.ResponseWriter, v interface{}) { | |||||
var buffer = new(bytes.Buffer) | |||||
w.Header().Set("Content-type", "application/json; charset=utf-8") | |||||
if err := json.NewEncoder(buffer).Encode(v); err == nil { | |||||
w.Write(buffer.Bytes()) | |||||
} else { | |||||
http.Error(w, err.Error(), http.StatusInternalServerError) | |||||
} | |||||
} | |||||
// Renders a view (Pongo) and sends the rendered HTML string to the client. | |||||
// Optional parameters: value, local variables for the view. | |||||
// func (self *server) Render(filename string, v ...interface{}) {} | |||||
// Run starts the application server to serve incoming requests at the given address. | // Run starts the application server to serve incoming requests at the given address. | ||||
func (self *server) Run() { | func (self *server) Run() { | ||||
runtime.GOMAXPROCS(maxprocs) | runtime.GOMAXPROCS(maxprocs) |