DevCraft Документации

Абстрактные классы

Документация по абстрактные классы. Часть API wrapper для КиноПоиска.

Абстрактные базовые классы библиотеки NotKinopoisk PHP Wrapper.

AbstractService

Абстрактный базовый класс для сервисов Kinopoisk API.

Описание

Предоставляет общую функциональность для всех сервисов, работающих с Kinopoisk API. Содержит базовые методы для выполнения запросов и обработки ответов.

Основные возможности

  • Общие методы для работы с API
  • Обработка ошибок и исключений
  • Логирование запросов и ответов
  • Базовая валидация данных

Свойства

$client

Тип: \NotKinopoisk\Client

Основной клиент для работы с API.

$apiVersion

Тип: ApiVersion

Версия API для использования.

Методы

__construct(Client $client, ApiVersion $apiVersion = ApiVersion::V1)

Конструктор абстрактного сервиса для работы с Kinopoisk API.

Параметры:

  • $client (\NotKinopoisk\Client) - Основной клиент для работы с API
  • $apiVersion (ApiVersion) - Версия API для использования (по умолчанию 'v1')

Пример:

// Создание сервиса с версией API по умолчанию
$client = new Client('your-api-key');
$service = new FilmService($client);

// Создание сервиса с указанной версией API
$service = new FilmService($client, ApiVersion::V2_2);

setApiVersion(ApiVersion $apiVersion): void

Устанавливает версию API для работы сервиса.

Параметры:

  • $apiVersion (ApiVersion) - Версия API из перечисления доступных версий

get(string $uri, array $query = []): array

Выполняет GET запрос к API.

Параметры:

  • $uri (string) - URI для запроса
  • $query (array) - Параметры запроса

Возвращает:

  • array - Ответ от API

buildUri(string $endpoint, ?ApiVersion $api_version = null): string

Строит URI для запроса с учетом версии API.

Параметры:

  • $endpoint (string) - Конечная точка API
  • $api_version (ApiVersion|null) - Версия API (если не указана, используется текущая)

Возвращает:

  • string - Полный URI для запроса

Пример реализации

class MyService extends AbstractService
{
    public function getData(): array
    {
        $response = $this->client->get('/api/v1/endpoint');
        return $response->getData();
    }

    public function getCustomData(string $id): array
    {
        $uri = $this->buildUri("/films/{$id}");
        return $this->get($uri);
    }
}

Наследующие классы

  • \NotKinopoisk\Services\FilmService - Сервис для работы с фильмами
  • \NotKinopoisk\Services\PersonService - Сервис для работы с персонами
  • \NotKinopoisk\Services\MediaService - Сервис для работы с медиа
  • \NotKinopoisk\Services\UserService - Сервис для работы с пользователем

Связанные классы

  • \NotKinopoisk\Client - Основной клиент API
  • \NotKinopoisk\Enums\ApiVersion - Перечисление версий API

On this page