Документация к API говорит на curl, а приложения iOS — на URLSession, и ручной перевод между ними — рутина, в которой легко наделать мелких ошибок: пропущенный заголовок, тело, оставленное строкой вместо JSON, тихо проигнорированный флаг аутентификации. Конвертер разбирает команду так же, как это делает сам curl, включая флаги, которые меняют метод или сворачивают учётные данные в заголовок, и выдаёт Swift, которому нужен только Foundation. Тело JSON становится словарём Swift, проходящим через JSONSerialization, а не непрозрачной строкой.
Возможности
Разбирает -X, -H, -d, --data-raw, --json, -u, -b, -A, -e и -G так же, как curl
Генерирует код URLSession, которому не нужно ничего, кроме Foundation
Тело JSON выводится словарём Swift и кодируется через JSONSerialization
Базовая аутентификация собирается из учётных данных с base64EncodedString
Метод выводится из наличия тела либо берётся из -X
Предупреждает о флагах curl без разумного соответствия в Swift
Метод выводится из наличия тела — ровно так же, как его определил бы curl.
Частые ошибки и устранение неполадок
В curl запрос работает, а в приложении нет. — Проверьте App Transport Security. iOS по умолчанию блокирует обычный HTTP, поэтому для http://-адреса нужно исключение в Info.plist или адрес https.
Код компилируется, но ничего не печатает. — URLSession асинхронна. В консольной утилите процесс завершается раньше, чем сработает обработчик: удержите цикл выполнения или перейдите на async/await.
Флаг -k или --insecure проигнорирован. — Намеренно. Отказ от проверки сертификата требует URLSessionDelegate, и это решение стоит принимать явно.
Специальные символы в теле выглядят неверно. — Проверьте кавычки в исходной команде. Тело в двойных кавычках уже прошло через вашу оболочку.
Часто задаваемые вопросы
Работает ли сгенерированный 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.
Связанные инструменты
cURL в Fetch — Преобразуйте команду curl в вызов fetch() на JavaScript.
curl в Python — Преобразование команды curl в скрипт Python requests.
curl в Node.js — Преобразование команды curl в код Node.js axios.
cURL в Java — Конвертирует команду curl в код Java с HttpClient.
cURL в Dart — Превращает команду curl в код Dart на package:http.
API-клиент — Отправляйте HTTP-запросы, задавайте заголовки и параметры и изучайте ответы; сохраняет последние 25.
Другие инструменты: Инструменты API
cURL в Dart — Превращает команду curl в код Dart на package:http.
cURL в Fetch — Преобразуйте команду curl в вызов fetch() на JavaScript.
Разбор URL — Разбейте URL на части и просмотрите список параметров запроса.
API-клиент — Отправляйте HTTP-запросы, задавайте заголовки и параметры и изучайте ответы; сохраняет последние 25.
Генератор URL и UTM — Создавайте и проверяйте закодированные рабочие URL-адреса с параметрами UTM.
Тестер API OpenAI — Создавайте, выполняйте и копируйте запросы к API OpenAI Chat Completions в виде cURL, Python и JavaScript.
Тестер API Anthropic Claude — Создавайте, выполняйте и копируйте запросы к API Anthropic Claude Messages в виде cURL, Python и JavaScript.
Тестер API Google Gemini — Создавайте, выполняйте и копируйте запросы generateContent Google Gemini в виде cURL, Python и JavaScript.
Тестер API Replicate — Создавайте, выполняйте и копируйте запросы прогнозов API Replicate в виде cURL, Python и JavaScript.
Тестер API Hugging Face — Создавайте, выполняйте и копируйте запросы к Hugging Face Inference API в виде cURL, Python и JavaScript.
curl в Python — Преобразование команды curl в скрипт Python requests.
curl в Go — Преобразование команды curl в код Go net/http.