|
|
@ -1,6 +1,7 @@ |
|
|
|
package http |
|
|
|
package http |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
import ( |
|
|
|
|
|
|
|
"fmt" |
|
|
|
"io" |
|
|
|
"io" |
|
|
|
"net/http" |
|
|
|
"net/http" |
|
|
|
|
|
|
|
|
|
|
@ -40,7 +41,7 @@ type EncodeErrorFunc func(http.ResponseWriter, *http.Request, error) |
|
|
|
func DefaultRequestDecoder(r *http.Request, v interface{}) error { |
|
|
|
func DefaultRequestDecoder(r *http.Request, v interface{}) error { |
|
|
|
codec, ok := CodecForRequest(r, "Content-Type") |
|
|
|
codec, ok := CodecForRequest(r, "Content-Type") |
|
|
|
if !ok { |
|
|
|
if !ok { |
|
|
|
return errors.BadRequest("CODEC", r.Header.Get("Content-Type")) |
|
|
|
return errors.BadRequest("CODEC", fmt.Sprintf("unregister Content-Type: %s", r.Header.Get("Content-Type"))) |
|
|
|
} |
|
|
|
} |
|
|
|
data, err := io.ReadAll(r.Body) |
|
|
|
data, err := io.ReadAll(r.Body) |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
@ -50,7 +51,7 @@ func DefaultRequestDecoder(r *http.Request, v interface{}) error { |
|
|
|
return nil |
|
|
|
return nil |
|
|
|
} |
|
|
|
} |
|
|
|
if err = codec.Unmarshal(data, v); err != nil { |
|
|
|
if err = codec.Unmarshal(data, v); err != nil { |
|
|
|
return errors.BadRequest("CODEC", err.Error()) |
|
|
|
return errors.BadRequest("CODEC", fmt.Sprintf("body unmarshal %s", err.Error())) |
|
|
|
} |
|
|
|
} |
|
|
|
return nil |
|
|
|
return nil |
|
|
|
} |
|
|
|
} |
|
|
|