SDK
Коротко
Комплект для разработки под конкретную платформу или сервис: библиотеки, документация, примеры кода и утилиты, которые избавляют от ручной работы с низкоуровневым API.
Что такое «SDK»
Любой серьёзный сервис открывает доступ через API: адреса, параметры, подписи запросов, форматы ошибок. Писать всё это вручную долго, и легко ошибиться в мелочах вроде алгоритма подписи или повторов при сбоях. SDK берёт эту работу на себя: вместо формирования HTTP-запроса разработчик вызывает метод с понятными параметрами. Название расшифровывается как Software Development Kit — набор для разработки программного обеспечения.
Что входит в комплект
- Клиентские библиотеки для одного или нескольких языков.
- Документация и примеры для типовых задач.
- Утилиты: командная строка, эмуляторы, отладчики. Например, Android SDK включает эмулятор устройств и средства сборки приложений.
- Описание типов и автодополнение для редактора кода.
Отдельная библиотека решает одну задачу. SDK — это целая экосистема вокруг платформы, и её поддерживает сам владелец сервиса, поэтому новые возможности API появляются в нём быстрее, чем в сторонних обёртках.
Пример: загрузка файла через SDK
Многие облачные хранилища совместимы с протоколом S3, поэтому к ним подходит SDK от AWS. Так копия базы сайта отправляется в Yandex Object Storage после установки пакета командой composer require aws/aws-sdk-php:
use Aws\S3\S3Client;
$s3 = new S3Client([
'version' => 'latest',
'region' => 'ru-central1',
'endpoint' => 'https://storage.yandexcloud.net',
'credentials' => ['key' => getenv('S3_KEY'), 'secret' => getenv('S3_SECRET')],
]);
$s3->putObject(['Bucket' => 'backups', 'Key' => 'db.sql.gz', 'SourceFile' => '/tmp/db.sql.gz']);
Подпись запроса, разбиение больших файлов на части и повторы при обрыве связи SDK выполняет сам. Ключи берутся из переменных окружения, а не пишутся в код.
SDK или прямые запросы
SDK удобен, когда работы с сервисом много. Но он тянет за собой зависимости и обновления. Если нужно один раз в сутки отправить простой запрос, иногда проще обойтись встроенным в CMS HTTP-клиентом. Ещё один аргумент — совместимость: старый сайт на устаревшей версии PHP может не поддерживать свежий SDK, а ставится он обычно через менеджер пакетов вроде Composer, которого в проекте может не быть.

