private function prepareRequest($method, $url, array $requestParameters)
 {
     $env = Environment::mock(['SCRIPT_NAME' => '/index.php', 'REQUEST_URI' => $url, 'REQUEST_METHOD' => $method]);
     $parts = explode('?', $url);
     if (isset($parts[1])) {
         $env['QUERY_STRING'] = $parts[1];
     }
     $uri = Uri::createFromEnvironment($env);
     $headers = Headers::createFromEnvironment($env);
     $cookies = [];
     $serverParams = $env->all();
     $body = new RequestBody();
     $body->write(json_encode($requestParameters));
     $request = new Request($method, $uri, $headers, $cookies, $serverParams, $body);
     return $request->withHeader('Content-Type', 'application/json');
 }