### HTTP 響應
#### 發送 string 數據
Context#WriteString(contents ...interface{}) 用于發送一個默認200狀態碼的純文本響應。
Context#WriteStringC(code int, contents ...interface{})用于發送一個帶有狀態碼的純文本響應。
~~~
func(ctx dotweb.Context) error {
ctx.WriteString("Hello, World!")
return nil
}
~~~
#### 發送 JSON 數據
Context#WriteJson(i interface{}) 用于發送一個默認200狀態碼的 json 對象。它會將 golang 的對象轉換成 json 字符串。
Context#WriteJsonC(code int, i interface{}) 用于發送一個帶有狀態碼的 json 對象。它會將 golang 的對象轉換成 json 字符串。
~~~
// User
type User struct {
Name string `json:"name"`
Email string `json:"email"`
}
// Handler
func(ctx dotweb.Context) error {
u := &User{
Name: "Xxx",
Email: "xxx@qq.com",
}
ctx.WriteJson(u)
return nil
}
~~~
#### 發送 JSONP 數據
Conmtext#WriteJsonp(callback string, i interface{}) 用于將golang對象轉換成 json 并通過回調以 jsonp 的結構發送。
~~~
// User
type User struct {
Name string `json:"name"`
Email string `json:"email"`
}
// Handler
func(ctx dotweb.Context) error {
u := &User{
Name: "Xxx",
Email: "xxx@qq.com",
}
ctx.WriteJsonp("callback", u)
return nil
}
~~~
#### 發送模板Html響應
Context#View(name string)用于發送一個默認200狀態碼的動態生成 html 內容
Context#ViewC(code int, name string)用于發送一個帶有狀態碼的動態生成 html 內容
~~~
app.HttpServer.Renderer().SetTemplatePath("/wwwroot/views/")
func TestView(ctx dotweb.Context) error {
ctx.ViewData().Set("data", "圖書信息")
ctx.ViewData().Set("user", &UserInfo{UserName: "user1", Sex: true})
err := ctx.View("testview.html")
return err
}
~~~
更多可參考 [模板](/devfeel/dotweb/346602)
#### 重定向
Context#Redirect(code int, targetUrl string),提供一個 url 用于重定向。
~~~
func(ctx dotweb.Context) error {
return ctx.Redirect(http.StatusMovedPermanently, "<URL>")
}
~~~