企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 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>") } ~~~