@kaxa3201

Как лучше реализовать sender?

Написал вот такой класс
class JsonRpcClient implements ClientContract
{
    private $client;
    public function __construct(ClientInterface $client)
    {
        $this->client = $client;
    }
    public function sendRequest($url, $methodName, $params, $headers)
    {
        try {
            $response = $this->client->post($url, [
                RequestOptions::JSON => [
                    'jsonrpc' => '2.0',
                    'method'  => $methodName,
                    'params'  => ($params),
                    'id'      => Uuid::uuid4(),
                ],

                RequestOptions::HEADERS => $headers,
            ]);

            $responseData = json_decode($response->getBody()->getContents(), true);

            if (empty($responseData['result'])) {
                return null;
            }

            return $responseData['result'];

        } catch (ClientException $exception) {
            return $exception->getMessage();
        }
    }

Меня смущает rerunt null, правильно ли так отлавливать пустой ответ или это нужно отлавливать уже в клиентском коде? Вообщем, как лучше сделать? буду благодарен за разумный совет
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
@sidni
Php Developer
Как вариант бросьте эксепшен (лучше создать свой).
А в клиентском коде (или лучше создайте декоратор) и перенесите туда try...catch уже ловите его и обрабатывайте как надо.
ну если лень заморачиваться или оставьте как есть и в return $exception->getMessage(); вернется сообщение пустого респонса
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы