Smail/backend/controllers/request.go
smail f60d3b0880
Some checks are pending
Security Checks / security (push) Waiting to run
整理前后端与测试构建目录并完善配置和安全引导
统一 frontend、backend、test、test-log 和 out 目录,更新构建、部署及测试入口;纳入配置管理兼容与首次安全引导修复;排除本机配置、密钥和测试产物。
2026-09-05 19:19:52 +08:00

28 lines
577 B
Go

package controllers
import (
"encoding/json"
"errors"
"io"
"net/http"
)
const maxJSONRequestBytes int64 = 64 << 10
func decodeJSONRequest(w http.ResponseWriter, req *http.Request, target any) error {
req.Body = http.MaxBytesReader(w, req.Body, maxJSONRequestBytes)
decoder := json.NewDecoder(req.Body)
decoder.DisallowUnknownFields()
if err := decoder.Decode(target); err != nil {
return err
}
var trailing any
if err := decoder.Decode(&trailing); err != io.EOF {
if err == nil {
return errors.New("multiple JSON values")
}
return err
}
return nil
}