code: func (service *Service) DecodeRequest(req *http.Request, v interface{}) error {
  	body, contentType := req.Body, req.Header.Get("Content-Type")
  	defer body.Close()
  
  	if err := service.Decoder.Decode(v, body, contentType); err != nil {
  		return fmt.Errorf("failed to decode request body with content type %#v: %s", contentType, err)
  	}
  
  	return nil
  }
docs: // DecodeRequest uses the HTTP decoder to unmarshal the request body into the provided value based
  // on the request Content-Type header.