【Golang + Echo】カンマ区切りのクエリパラメータを構造体にBindする方法
やりたいこと
下記のようなUrlで companyIds
を配列として受け取りたい。
companies/pageSize=10&page=1&companyIds=22,23,21
コードサンプル
ポイントは BindWithDelimiter
の部分。ここで,
区切りの数値を CompanyIds
に格納してる。
type getCompanyRequest struct { Name string `query:"name"` CompanyIds []int `query:"companyIds"` PageSize int `query:"pageSize"` Page int `query:"page"` } func GetCompanies(d *store.Store) echo.HandlerFunc { return func(c echo.Context) error { var r getCompanyRequest if err := echo.QueryParamsBinder(c). BindWithDelimiter("companyIds", &r.CompanyIds, ","). BindError(); err != nil { return c.String(http.StatusBadRequest, err.Error()) } //省略 return c.JSON(http.StatusOK, companies) } }