refactor: 迁移到 hyperf3.1 的写法

Signed-off-by: 李东云 <dongyu.li@luxcreo.ai>
This commit is contained in:
李东云
2023-12-14 16:03:23 +08:00
parent 08d00a785f
commit 97131d224c
7 changed files with 251 additions and 33 deletions

View File

@@ -4,7 +4,8 @@ declare(strict_types=1);
namespace Singularity\HDK\Core\Http;
use Ergebnis\Http\Method;
use Ergebnis\Http\Method\Rfc\Rfc5789;
use Ergebnis\Http\Method\Rfc\Rfc7231;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Psr7\Request;
@@ -49,7 +50,9 @@ final class RequestService extends AbstractSingleton
/**
* 定制 options
*
* @param Options $options
*
* @return $this
*/
public function setOptions(array $options): self
@@ -59,10 +62,11 @@ final class RequestService extends AbstractSingleton
}
/**
* @param string $url
* @param string $url
* @param array<string, string|int> $params
* @param array<string, mixed> $data
* @param Options $options
* @param array<string, mixed> $data
* @param Options $options
*
* @return ResponseInterface
* @throws GuzzleException
*/
@@ -73,7 +77,7 @@ final class RequestService extends AbstractSingleton
array $options = []
): ResponseInterface {
$request = new Request(
method: Method\Rfc\Rfc7231::GET,
method: Rfc7231::GET,
uri: $url
);
return $this->getClient($options)->send($request, ['query' => $params, 'json' => $data,]);
@@ -81,7 +85,9 @@ final class RequestService extends AbstractSingleton
/**
* 工厂模式初始化请求
*
* @param Options $options
*
* @return Client
*/
private function getClient(array $options): Client
@@ -91,10 +97,11 @@ final class RequestService extends AbstractSingleton
}
/**
* @param string $url
* @param string $url
* @param array<string, string|int> $params
* @param array<string, mixed> $data
* @param Options $options
* @param array<string, mixed> $data
* @param Options $options
*
* @return ResponseInterface
* @throws GuzzleException
*/
@@ -106,7 +113,7 @@ final class RequestService extends AbstractSingleton
): ResponseInterface {
$data = Json::encode($data);
$request = new Request(
method: Method\Rfc\Rfc7231::POST,
method: Rfc7231::POST,
uri: $url,
headers: ['Content-Type' => 'application/json'],
body: Utils::streamFor($data),
@@ -115,10 +122,11 @@ final class RequestService extends AbstractSingleton
}
/**
* @param string $url
* @param array<string, mixed> $data
* @param string $url
* @param array<string, mixed> $data
* @param array<string, string|int> $params
* @param Options $options
* @param Options $options
*
* @return ResponseInterface
* @throws GuzzleException
*/
@@ -130,7 +138,7 @@ final class RequestService extends AbstractSingleton
): ResponseInterface {
$data = Json::encode($data);
$request = new Request(
method: Method\Rfc\Rfc7231::PUT,
method: Rfc7231::PUT,
uri: $url,
headers: ['Content-Type' => 'application/json'],
body: Utils::streamFor($data)
@@ -142,10 +150,11 @@ final class RequestService extends AbstractSingleton
}
/**
* @param string $url
* @param array<string, mixed> $data
* @param string $url
* @param array<string, mixed> $data
* @param array<string, string|int> $params
* @param Options $options
* @param Options $options
*
* @return ResponseInterface
* @throws GuzzleException
*/
@@ -157,7 +166,7 @@ final class RequestService extends AbstractSingleton
): ResponseInterface {
$data = Json::encode($data);
$request = new Request(
method: Method\Rfc\Rfc5789::PATCH,
method: Rfc5789::PATCH,
uri: $url,
headers: ['Content-Type' => 'application/json'],
body: Utils::streamFor($data)
@@ -169,10 +178,11 @@ final class RequestService extends AbstractSingleton
}
/**
* @param string $url
* @param array<string, mixed> $data
* @param string $url
* @param array<string, mixed> $data
* @param array<string, string|int> $params
* @param Options $options
* @param Options $options
*
* @return ResponseInterface
* @throws GuzzleException
*/
@@ -184,7 +194,7 @@ final class RequestService extends AbstractSingleton
): ResponseInterface {
$data = Json::encode($data);
$request = new Request(
method: Method\Rfc\Rfc7231::DELETE,
method: Rfc7231::DELETE,
uri: $url,
headers: ['Content-Type' => 'application/json'],
body: Utils::streamFor($data)

View File

@@ -4,7 +4,7 @@ declare(strict_types=1);
namespace Singularity\HDK\Core\Service;
use Ergebnis\Http\Method;
use Ergebnis\Http\Method\Rfc\Rfc7231;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Psr7\Request;
@@ -16,6 +16,7 @@ use Psr\Http\Message\ResponseInterface;
/**
* 发起 Http 请求的类
*
* @deprecated since version 1.0-alpha.3, to be removed in 1.0
*/
class HttpRequestService
@@ -31,15 +32,16 @@ class HttpRequestService
private array $options = [];
/**
* @param string $url
* @param string $url
* @param array<string, string|int> $params
* @param array<string, mixed> $data
* @param array<string, mixed> $data
*
* @return ResponseInterface
* @throws GuzzleException
*/
public function requestGet(string $url, array $params = [], array $data = []): ResponseInterface
{
$request = new Request(Method\Rfc\Rfc7231::GET, $url);
$request = new Request(Rfc7231::GET, $url);
return $this->getClient()->send($request, [
'query' => $params,
'json' => $data,
@@ -52,9 +54,10 @@ class HttpRequestService
}
/**
* @param string $url
* @param array<string, mixed> $data
* @param string $url
* @param array<string, mixed> $data
* @param array<string, string|int> $params
*
* @return ResponseInterface
* @throws GuzzleException
*/
@@ -74,9 +77,10 @@ class HttpRequestService
/**
* @param string $url
* @param array<string, mixed> $data
* @param string $url
* @param array<string, mixed> $data
* @param array<string, string|int> $params
*
* @return ResponseInterface
* @throws GuzzleException
*/
@@ -91,7 +95,9 @@ class HttpRequestService
/**
* 定制 options
*
* @param array<string, mixed> $options
*
* @return $this
*/
public function setOptions(array $options): HttpRequestService