def transform_rest_request(self, orig_request, params, method_parameters):
    request = orig_request.copy()
    body_json = {}
    for key, value in params.iteritems():
      body_json[key] = [value]
    if request.parameters:
      for key, value in request.parameters.iteritems():
        if key in body_json:
          body_json[key] = value + body_json[key]
        else:
          body_json[key] = value
    for key, value in body_json.items():
      current_parameter = method_parameters.get(key, {})
      repeated = current_parameter.get('repeated', False)
      if not repeated:
        body_json[key] = body_json[key][0]
      body_json[key] = parameter_converter.transform_parameter_value(
          key, body_json[key], current_parameter)
      message_value = body_json.pop(key)
      self._add_message_field(key, message_value, body_json)
    if request.body_json:
      self._update_from_body(body_json, request.body_json)
    request.body_json = body_json
    request.body = json.dumps(request.body_json)
    return request