/** * Create a new internal request from an HTTP verb and URI. * * @param string $verb * @param string $uri * @param string|array $parameters * * @return \Dingo\Api\Http\InternalRequest */ protected function createRequest($verb, $uri, $parameters) { if (!isset($this->version)) { $this->version = $this->properties->getVersion(); } $api = $this->router->getApiGroups()->getByDomainOrVersion($this->domain, $this->version); if (($prefix = $api->option('prefix')) && !starts_with($uri, $prefix)) { $uri = sprintf('%s/%s', $prefix, $uri); } $parameters = array_merge($this->parameters, (array) $parameters); $request = InternalRequest::create($this->url->to($uri), $verb, $parameters, $this->cookies, $this->uploads, [], $this->content); if ($domain = $api->option('domain')) { $request->headers->set('host', $domain); } foreach ($this->headers as $header => $value) { $request->headers->set($header, $value); } $request->headers->set('accept', $this->buildAcceptHeader()); return $request; }