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: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-03-30 10:57 UTC

This package is not auto-updated.

Last update: 2026-03-30 22:29:26 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)

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

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

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