go-chi / go-chi/render

`Bind` not getting called on structs inside a slice

Open
#37 2 comments 2 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
339
Forks
66
PR merge metrics
No merged PRs in 30d

Description

One of the properties inside my JSON payload is a slice. In my case the `children` property.

```go
type Body struct {
Name string `json:"name"`
Children Children `json:"children"`
}

func (b Body) Bind(r *http.Request) error {
if b.Name == "" {
return errors.New("empty body name")
}

return nil
}

type Children []Child

func (c Children) Bind(r *http.Request) error {
if c == nil {
return errors.New("no children provided")
}

return nil
}

type Child struct {
Name string `json:"name"`
}

func (c Child) Bind(r *http.Request) error {
if c.Name == "" {
return errors.New("empty child name")
}

return nil
}
```

I implemented the `Bind` interface for each of the types, but the `Child` elements are not validated when calling `render.Bind` on the `Body` struct.

Here a full example:
https://go.dev/play/p/fGMSdjRDrtg

Is this expected or am i doing something wrong?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.