@@ -36,14 +36,10 @@ func TagNameResolver(tagName string) TagResolver {
36
36
type PathParamFunc func (r * http.Request , key string ) string
37
37
38
38
// FormParamFunc is a function that returns value of specified form parameter.
39
- type FormParamFunc func (r * http.Request , key string ) [] string
39
+ type FormParamFunc func (r * http.Request , key string ) string
40
40
41
- func DefaultFormParamFunc (r * http.Request , key string ) []string {
42
- // ParseForm is called in Parser.Parse, so we can safely assume that r.Form is already populated.
43
- if values , ok := r .PostForm [key ]; ok && len (values ) > 0 {
44
- return values
45
- }
46
- return nil
41
+ func DefaultFormParamFunc (r * http.Request , key string ) string {
42
+ return r .PostFormValue (key )
47
43
}
48
44
49
45
// Parser can Parse query and path parameters from http.Request into a struct.
@@ -255,9 +251,9 @@ func (p Parser) parseFormParam(r *http.Request, paramName string, v reflect.Valu
255
251
if err := r .ParseForm (); err != nil {
256
252
return fmt .Errorf ("parsing form data: %w" , err )
257
253
}
258
- paramValues := p .FormParamFunc (r , paramName )
259
- if len ( paramValues ) > 0 {
260
- err := unmarshalValueOrSlice ( paramValues , v )
254
+ paramValue := p .FormParamFunc (r , paramName )
255
+ if paramValue != "" {
256
+ err := unmarshalValue ( paramValue , v )
261
257
if err != nil {
262
258
return fmt .Errorf ("unmarshaling form parameter %s: %w" , paramName , err )
263
259
}
0 commit comments