Skip to content

Support for gin query param unmarshaling? #82

Description

@APILLSBURY

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(&params)
 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions