github.com/nsqio/nsq@v1.3.0/internal/http_api/req_params.go (about) 1 package http_api 2 3 import ( 4 "errors" 5 "io" 6 "net/http" 7 "net/url" 8 ) 9 10 type ReqParams struct { 11 url.Values 12 Body []byte 13 } 14 15 func NewReqParams(req *http.Request) (*ReqParams, error) { 16 reqParams, err := url.ParseQuery(req.URL.RawQuery) 17 if err != nil { 18 return nil, err 19 } 20 21 data, err := io.ReadAll(req.Body) 22 if err != nil { 23 return nil, err 24 } 25 26 return &ReqParams{reqParams, data}, nil 27 } 28 29 func (r *ReqParams) Get(key string) (string, error) { 30 v, ok := r.Values[key] 31 if !ok { 32 return "", errors.New("key not in query params") 33 } 34 return v[0], nil 35 } 36 37 func (r *ReqParams) GetAll(key string) ([]string, error) { 38 v, ok := r.Values[key] 39 if !ok { 40 return nil, errors.New("key not in query params") 41 } 42 return v, nil 43 }