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, которого в проекте может не быть.

Обновлено:

Все термины раздела «Backend»

Что будем искать? Например,Продвижение