Gin just added a new interface called BindUnmarshaler that allows types to define a UnmarshalParam method which lets them be used as query parameters.
Implementing this would allow binding KSUID API query params like this:
type queryParams struct {
ID KSUID `form:"id"`
}
route.GET("/test", func(ctx *gin.Context) {
var params queryParams{}
_ = ctx.BindQuery(¶ms)
entity, err := GetEntity(params.ID)
...
})
I think all that is necessary is adding this method:
func (i *KSUID) UnmarshalParam(s string) error {
return i.UnmarshalText([]byte(s))
}
I'm happy to open a PR for it if that would be helpful.
Gin just added a new interface called BindUnmarshaler that allows types to define a
UnmarshalParammethod which lets them be used as query parameters.Implementing this would allow binding KSUID API query params like this:
I think all that is necessary is adding this method:
I'm happy to open a PR for it if that would be helpful.