Description
While working on #426 I noticed that there is no convenient alternative to call \Redmine\Http\HttpClient::request()
because one has to implement the \Redmine\Http\Request
interface beforehand.
Internally we are using the class \Redmine\Http\HttpFactory
to create Request
and Response
instances. This factory class is marked as internal. I propose to make this class publicly available to make the use of \Redmine\Http\HttpClient::request()
much more easier.
See also #401 (comment). The HttpFactory
will reduce the needed code to:
$response = $client->request(
\Redmine\Http\HttpFactory::makeJsonRequest(
'POST',
'/time_entries.json',
\Redmine\Serializer\JsonSerializer::createFromArray(['time_entry' => $data])->getEncoded(),
),
);
#391 proposes the deprecation of this methods:
Redmine\Client\Client::getLastResponseStatusCode()
Redmine\Client\Client::getLastResponseContentType()
Redmine\Client\Client::getLastResponseBody()
But publishing HttpFactory
will allow us to deprecate even more methods:
- Deprecate
Redmine\Client\Client::requestGet()
- Deprecate
Redmine\Client\Client::requestPost()
- Deprecate
Redmine\Client\Client::requestPut()
- Deprecate
Redmine\Client\Client::requestDelete()
Deprecating this methods was also kept in mind while designing the \Redmine\Http\HttpClient::request()
method, see #341.