100yuristov/sto-core-client

There is no license information available for the latest version (dev-master) of this package.

API client for 100 Yuristov Core service

Maintainers

Package info

github.com/Sunsetboy/sto-core-php-client

pkg:composer/100yuristov/sto-core-client

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-04-04 10:27 UTC

This package is not auto-updated.

Last update: 2026-04-04 10:43:57 UTC


README

PHP-клиент для интеграции сайтов с ядром сети 100 Юристов.

Требования

  • PHP 8.2+
  • PSR-18 HTTP-клиент (например, Guzzle или Symfony HTTP Client)
  • PSR-17 фабрики запросов и потоков

Установка

composer require 100yuristov/sto-core-client

Инициализация

Для работы с SDK необходимы api_key и api_secret сайта, которые выдаёт администратор ядра.

SDK не привязан к конкретному HTTP-клиенту — передайте любой PSR-18 совместимый:

Guzzle:

use GuzzleHttp\Client as GuzzleClient;
use GuzzleHttp\Psr7\HttpFactory;
use StoCore\StoClient;

$httpClient = new GuzzleClient();
$factory    = new HttpFactory();

$client = new StoClient(
    apiKey:         'ваш_api_key',
    apiSecret:      'ваш_api_secret',
    httpClient:     $httpClient,
    requestFactory: $factory,
    streamFactory:  $factory,
);

Symfony HTTP Client:

use Symfony\Component\HttpClient\Psr18Client;
use StoCore\StoClient;

$httpClient = new Psr18Client();

$client = new StoClient(
    apiKey:         'ваш_api_key',
    apiSecret:      'ваш_api_secret',
    httpClient:     $httpClient,
    requestFactory: $httpClient,
    streamFactory:  $httpClient,
);

По умолчанию клиент обращается к https://core.100yuristov.com. Чтобы изменить адрес, передайте параметр baseUrl:

$client = new StoClient(
    apiKey:         'ваш_api_key',
    apiSecret:      'ваш_api_secret',
    httpClient:     $httpClient,
    requestFactory: $factory,
    streamFactory:  $factory,
    baseUrl:        'https://staging.core.100yuristov.com',
);

Создание вопроса

use StoCore\CreateQuestionRequest;
use StoCore\Exception\ApiException;

$request = new CreateQuestionRequest(
    externalId: '123',           // ID вопроса на вашем сайте
    text:       'Текст вопроса',
    authorName: 'Иван',
    price:      1000,            // в копейках
    currency:   'RUB',
);

try {
    $question = $client->createQuestion($request);

    echo $question->id;         // ID вопроса в ядре
    echo $question->externalId; // ваш исходный ID
    echo $question->createdAt;  // дата создания
} catch (ApiException $e) {
    echo $e->getMessage();          // текст ошибки от API
    echo $e->getHttpStatusCode();   // HTTP статус
}

Параметры CreateQuestionRequest

Параметр Тип Обязательный Описание
externalId string да ID вопроса на вашем сайте
text string да Текст вопроса
authorName string нет Имя автора
price int нет Цена в копейках (по умолчанию 0)
currency string нет Валюта (по умолчанию RUB)

Обновление вопроса

use StoCore\UpdateQuestionRequest;
use StoCore\Exception\ApiException;

$request = new UpdateQuestionRequest(
    text:       'Обновлённый текст вопроса',
    authorName: 'Иван',
    price:      2000,   // в копейках
    currency:   'RUB',
);

try {
    $question = $client->updateQuestion('123', $request);

    echo $question->id;   // ID вопроса в ядре
    echo $question->text; // обновлённый текст
} catch (ApiException $e) {
    echo $e->getMessage();        // текст ошибки от API
    echo $e->getHttpStatusCode(); // HTTP статус
}

Первый аргумент updateQuestion()external_id вопроса на вашем сайте (тот же, что передавался при создании).

Параметры UpdateQuestionRequest

Параметр Тип Обязательный Описание
text string да Текст вопроса
authorName string нет Имя автора
price int нет Цена в копейках (по умолчанию 0)
currency string нет Валюта (по умолчанию RUB)

Обработка ошибок

Все ошибки API выбрасывают StoCore\Exception\ApiException:

HTTP статус Причина
401 Неверный api_key или подпись
404 Вопрос с таким external_id не найден (только для updateQuestion)
409 Вопрос с таким external_id уже существует (только для createQuestion)
500 Внутренняя ошибка ядра