cURL в Swift

Вставьте команду curl и получите код Swift, выполняющий тот же запрос через URLSession.

cURL в Swift разбирает команду в браузере: токены и учётные данные не покидают ваше устройство.

Попробовать клиент API

Об инструменте cURL в Swift

Документация к API говорит на curl, а приложения iOS — на URLSession, и ручной перевод между ними — рутина, в которой легко наделать мелких ошибок: пропущенный заголовок, тело, оставленное строкой вместо JSON, тихо проигнорированный флаг аутентификации. Конвертер разбирает команду так же, как это делает сам curl, включая флаги, которые меняют метод или сворачивают учётные данные в заголовок, и выдаёт Swift, которому нужен только Foundation. Тело JSON становится словарём Swift, проходящим через JSONSerialization, а не непрозрачной строкой.

Возможности

Как использовать cURL в Swift

  1. Вставьте команду curl вместе с флагами и телом
  2. Прочитайте сгенерированный Swift справа
  3. Проверьте предупреждения о непереводимых флагах
  4. Скопируйте код или скачайте его как .swift

Пример

Ввод

curl https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'

Результат

var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

Метод выводится из наличия тела — ровно так же, как его определил бы curl.

Частые ошибки и устранение неполадок

Часто задаваемые вопросы

Работает ли сгенерированный Swift на iOS, macOS и Linux?
Да. Он использует URLSession из Foundation, которая есть на платформах Apple и в swift-corelibs-foundation на Linux, поэтому тот же файл собирается и в серверном проекте.
Можно ли получить код с async/await вместо обработчика?
Генерируется задача с обработчиком завершения, которая работает везде. Замена на `let (data, response) = try await URLSession.shared.data(for: request)` — дело одной строки.
Как обрабатывается тело JSON?
Оно разбирается и выводится словарём [String: Any], а затем кодируется через JSONSerialization. Так полезная нагрузка остаётся читаемой.
Что происходит с cookie из флага -b?
Они становятся заголовком Cookie. Учтите, что у URLSession есть собственное хранилище cookie, которое может дополнять или перекрывать их.
Загружается ли команда curl при переводе в Swift?
Нет. Разбор и генерация кода происходят в браузере — это важно, потому что в командах из документации и логов часто встречаются настоящие ключи API.

Связанные инструменты

Все инструменты ArrayKit