Playground уже доступен в вашем Dashboard. Три endpoint, один cookie jar, каждый header разобран. Выберите Single, Proxy или Browser, заполните request, нажмите Send. Response отобразится на том же экране со статусом, header, body и разобранными cookie. Когда результат вас устроит, скопируйте готовый curl в свой код.
Это не отдельная страница и не песочница на другом URL. Инструмент работает с реальным API и вашим настоящим ключом. То, что вы видите в Playground, это именно то, что вернет ваш продакшн-код.
Как это работает
Вы входите в Dashboard, выбираете один из трех endpoint, и форма перестраивается, показывая только те поля, которые принимает этот endpoint.
- Single получает
url,method,headers,unblocker,proxy,tryJsonData,followRedirectsи группу настроек таймаута. - Proxy получает тот же набор, обернутый в блок
request, а также фильтры выбора proxy (страна, город, ASN, анонимность, свежесть). - Browser получает
url,cookies,headersи условия ожидания.
Когда вы нажимаете Send, Dashboard аутентифицирует вызов в вашем аккаунте и выполняет POST-request к /api/{endpoint} на api.foura.ai. Ваш реальный API-ключ никогда не передается через страницу. Playground это единственное место в Dashboard, где можно выполнить тарифицируемый request, не раскрывая ключ в браузере.
Вот пример curl, который Playground генерирует для базового Single request:
curl -X POST 'https://api.foura.ai/api/single' \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY' \
--data-raw '{
"url": "https://example.com/products",
"method": "GET",
"unblocker": true,
"tryJsonData": true
}'
Вставьте его в терминал или скрипт сборки, и он сработает точно так же, как кнопка Send. Мы не оборачиваем payload в кастомные структуры и не переименовываем поля. Playground отправляет именно то, что принимает API, и точка.
Что вы получаете в ответ
Панель response показывает статус целевого сервера, общее время и (для вызовов Proxy) proxy id, который обработал request. Для Body, Header и Cookie предусмотрены отдельные вкладки.
Body. Автоматически определенный JSON отображается в виде сворачиваемого дерева. HTML-payload переключается на панель предварительного просмотра, чтобы вы могли оценить, что вернул целевой сайт. Текст отображается в виде простого моноширинного шрифта. Во вкладках Body и Raw есть поле поиска с переходом к следующему/предыдущему совпадению.
Header. Структурированный вид с одной строкой на каждую пару name: value или Raw для полной цепочки response со всеми промежуточными узлами. Каждый редирект оставляет свой набор header, поэтому отследить путь от 302 до конечного адреса можно в один клик.
Cookie. Cookie jar разбирает каждую строку Set-Cookie из response, отслеживает, относится ли cookie только к хосту или ко всему домену (RFC 6265 §5.3), и предлагает два варианта отображения: сворачиваемые карточки по хостам или необработанный список. Включите cookie jar, и следующий request автоматически подтянет подходящие cookie. Для Single и Proxy это означает добавление header Cookie в исходящий request. Для Browser это означает массив cookie, прикрепленный к объекту request.
Пресеты сохраняют всю конфигурацию request с именем и описанием, чтобы вы могли быстро вернуться к задаче вроде "тест логина на staging", не собирая ее заново. История хранит последние двадцать запусков со статусом, типом контента, общим временем и использованным proxy.
Что это меняет
Главное, что меняет Playground, это цикл итерации.
Раньше вы писали небольшой скрипт (на Node, Python или shell), подключали ключ, обращались к API, выводили body, меняли один header, запускали снова. Проходило около десяти минут от мысли "интересно, что возвращает этот сайт" до получения ответа.
В Playground этот цикл сокращается примерно до пятнадцати секунд. Кликните по endpoint, вставьте URL, нажмите Send, посмотрите на cookie, переключите unblocker с off на on, снова нажмите Send. К тому моменту, как вы открыли бы редактор кода, вы уже знаете, какая версия request работает на целевом сайте.
Мы создали Playground не для того, чтобы заменить ваш реальный код. Мы добавили его, чтобы путь от вопроса "возможно ли вообще это сделать на данном сайте" до ответа "да, вот рабочий curl" больше не требовал создания отдельного мини-проекта.
Для продвинутых пользователей
Несколько неочевидных деталей:
Пресеты сохраняют весь payload. Сюда входят группа таймаутов, правила валидации, лимит редиректов и любые кастомные header. Сохраняя пресет, вы делаете снимок протестированного request, а не просто URL. Это полезно, если вы поддерживаете набор стабильных smoke-тестов для разных endpoint.
Cookie jar привязан к сессии. Он работает в вашем браузере. Мы не сохраняем полученные cookie на стороне сервера. Если вам нужно сбросить состояние, просто обновите вкладку с очисткой кэша.
Вкладка Raw и форма синхронизированы. Поля формы отображают тот же JSON, что и вкладка Raw. Вставьте payload в Raw, и форма заполнится автоматически. Если коллега скинет рабочий request в чат, вы сможете просто вставить его в Raw, и форма заполнится сама.
Cookie в Browser передаются в виде объектов, а не в формате header. Если вы отправляете cookie в endpoint Browser вручную, каждая запись должна иметь вид {name, value, domain?, path?, httpOnly?, secure?, sameSite?}. Playground формирует их правильно, когда включен cookie jar. Если вы составляете их самостоятельно, важно соблюдать схему.
Результаты отображаются в вашей ленте активности. Когда Playground отправляет request, он учитывается так же, как и любой другой вызов с вашим ключом. Вы увидите его в логе активности с соответствующей меткой результата (success, client_error, application_error, rate_limit, service_error). Это удобно для воспроизведения нестабильных вызовов в продакшене: запустите его снова в Playground, найдите в логе активности и поделитесь ссылкой с командой.
Что дальше
Playground это первый шаг в рамках масштабного развития Dashboard, цель которого заключается в том, чтобы дать пользователю больше возможностей, а не просто показывать историю действий. Паттерны, которые мы видим в логах request, определяют то, что мы добавим в следующих обновлениях.
Если вы используете инструмент уже сегодня и что-то кажется неудобным (поле не соответствует документации, cookie теряется при редиректе или response отображается некорректно), мы ждем ваших отзывов в первую очередь. Dashboard видит request. Мы видим тренды.