Documentation ¶
Index ¶
- Constants
- Variables
- func Bind(c *gin.Context, obj interface{}) error
- func BindJSON(c *gin.Context, obj interface{}) error
- func BindQuery(c *gin.Context, obj interface{}) error
- func BindXML(c *gin.Context, obj interface{}) error
- func BindYAML(c *gin.Context, obj interface{}) error
- func DecodeMsgPack(r io.Reader, obj interface{}) error
- func MustBindWith(c *gin.Context, obj interface{}, b Binding) error
- func NewReq[REQ any](c *gin.Context) (*REQ, error)
- func SetTag(tag string)
- func ShouldBind(c *gin.Context, obj interface{}) error
- func ShouldBindBodyWith(c *gin.Context, obj interface{}, bb BindingBody) (err error)
- func ShouldBindJSON(c *gin.Context, obj interface{}) error
- func ShouldBindQuery(c *gin.Context, obj interface{}) error
- func ShouldBindUri(r *gin.Context, obj interface{}) error
- func ShouldBindWith(c *gin.Context, obj interface{}, b Binding) error
- func ShouldBindXML(c *gin.Context, obj interface{}) error
- func ShouldBindYAML(c *gin.Context, obj interface{}) error
- func Validate(obj interface{}) error
- type Binding
- type BindingBody
Constants ¶
const ( MIMEJSON = "application/json" MIMEHTML = "text/html" MIMEXML = "application/xml" MIMEXML2 = "text/xml" MIMEPlain = "text/plain" MIMEPOSTForm = "application/x-www-form-urlencoded" MIMEMultipartPOSTForm = "multipart/form-data" MIMEPROTOBUF = "application/x-protobuf" MIMEMSGPACK = "application/x-msgpack" MIMEMSGPACK2 = "application/msgpack" MIMEYAML = "application/x-yaml" )
Variables ¶
var ( JSON = jsonBinding{} XML = xmlBinding{} Query = queryBinding{} FormPost = formPostBinding{} FormMultipart = formMultipartBinding{} Uri = uriBinding{} ProtoBuf = protobufBinding{} MsgPack = msgpackBinding{} YAML = yamlBinding{} Header = headerBinding{} )
These implement the Binding interface and can be used to bind the data present in the request to struct instances.
Functions ¶
func DecodeMsgPack ¶
func MustBindWith ¶
MustBindWith binds the passed struct pointer using the specified binding engine. It will abort the request with HTTP 400 if any error occurs. See the binding package.
func ShouldBind ¶
ShouldBind checks the Content-Type to select a binding engine automatically, Depending the "Content-Type" header different bindings are used:
"application/json" --> JSON binding "application/xml" --> XML binding
otherwise --> returns an error It parses the request's body as JSON if Content-Type == "application/json" using JSON or XML as a JSON input. It decodes the json payload into the struct specified as a pointer. Like c.GinBind() but this method does not set the response status code to 400 and abort if the json is not valid.
func ShouldBindBodyWith ¶
func ShouldBindBodyWith(c *gin.Context, obj interface{}, bb BindingBody) (err error)
ShouldBindBodyWith is similar with ShouldBindWith, but it stores the request body into the context, and reuse when it is called again.
NOTE: This method reads the body before binding. So you should use ShouldBindWith for better performance if you need to call only once.
func ShouldBindJSON ¶
ShouldBindJSON is a shortcut for c.ShouldBindWith(obj, binding.JSON).
func ShouldBindQuery ¶
ShouldBindQuery is a shortcut for c.ShouldBindWith(obj, binding.Query).
func ShouldBindUri ¶
ShouldBindUri binds the passed struct pointer using the specified binding engine.
func ShouldBindWith ¶
ShouldBindWith binds the passed struct pointer using the specified binding engine. See the binding package.
func ShouldBindXML ¶
ShouldBindXML is a shortcut for c.ShouldBindWith(obj, binding.XML).
func ShouldBindYAML ¶
ShouldBindYAML is a shortcut for c.ShouldBindWith(obj, binding.YAML).
Types ¶
type Binding ¶
Binding describes the interface which needs to be implemented for binding the data present in the request such as JSON request body, query parameters or the form POST.
type BindingBody ¶
BindingBody adds BindBody method to Binding. BindBody is similar with GinBind, but it reads the body from supplied bytes instead of req.Body.