Golang gin Context 详解
Gin是一个用Go语言编写的HTTP web框架,它提供了一种简单的方式来创建WEB应用。Gin框架的核心对象是Context,它提供了一种方式来访问http请求和响应以及其他数据。
以下是Gin框架中Context的一些常用方法:
- JSON:用于将数据以JSON格式返回给客户端。
func JSON(ctx *Context, code int, obj interface{}) {
ctx.Render(-1, render.Data{
"ContentType": "application/json",
"Data": obj,
})
ctx.AbortWithStatus(code)
}
- IndentedJSON:用于以缩进格式将数据以JSON格式返回给客户端。
func IndentedJSON(ctx *Context, code int, obj interface{}) {
ctx.Render(-1, render.Data{
"ContentType": "application/json",
"Data": obj,
"Indent": " ",
})
ctx.AbortWithStatus(code)
}
- XML:用于将数据以XML格式返回给客户端。
func XML(ctx *Context, code int, obj interface{}) {
ctx.Render(-1, render.Data{
"ContentType": "application/xml",
"Data": obj,
})
ctx.AbortWithStatus(code)
}
- YAML:用于将数据以YAML格式返回给客户端。
func YAML(ctx *Context, code int, obj interface{}) {
ctx.Render(-1, render.Data{
"ContentType": "application/x-yaml; charset=utf-8",
"Data": obj,
})
ctx.AbortWithStatus(code)
}
- ProtoBuf:用于将数据以ProtoBuf格式返回给客户端。
func ProtoBuf(ctx *Context, code int, obj interface{}) {
ctx.Render(-1, render.Data{
"ContentType": "application/x-protobuf",
"Data": obj,
})
ctx.AbortWithStatus(code)
}
- String:用于将字符串返回给客户端。
func String(ctx *Context, code int, format string, values ...interface{}) {
str := fmt.Sprintf(format, values...)
ctx.Render(-1, render.Data{
"ContentType": "text/plain",
"Data": []byte(str),
})
ctx.AbortWithStatus(code)
}
- HTML:用于将HTML模板返回给客户端。
func HTML(ctx *Context, code int, name string, obj interface{}) {
if code != -1 {
ctx.Writer.WriteHeader(code)
}
ctx.Render(code, render.Data{
"ContentType": "text/html",
"Data": obj,
"Name": name,
})
}
- Data:用于将二进制数据返回给客户端。
func Data(ctx *Context, code int, contentType string, data []byte) {
ctx.Render(-1, render.Data{
"ContentType": contentType,
"Data": data,
})
ctx.AbortWithStatus(code)
}
- Redirect:用于重定向URL。
func Redirect(ctx *Context, status int, location string) {
ctx.Render(-1, render.Data{
"ContentType": "text/ht
评论已关闭