Decoy
Decoy — нативный mock-сервер для macOS: локальные симуляции API и webhook. Определяйте маршруты, смотрите запросы и настраивайте ответы.
Что такое Decoy?
Decoy — нативный mock-сервер для macOS, который позволяет разработчикам симулировать HTTP-маршруты и поведение webhook локально. Определяйте маршруты, просматривайте входящие запросы и возвращайте контролируемые mock-ответы, чтобы тестировать API-обертки, обработку запросов, редиректы и сценарии сбоев без запуска внешних сервисов.
Основная цель Decoy — локальное тестирование по требованию: направляете клиент на локальный домен и порт Decoy, наблюдаете каждый запрос по мере поступления и корректируете ответы маршрутов, чтобы протестировать код на выбранных сценариях.
Ключевые возможности
- Нативное macOS-приложение с мгновенным запуском: Работает как SwiftUI-приложение, запускается быстро без Docker, облачных туннелей или шагов настройки.
- Управление маршрутами и запросами/ответами: Определяйте пары метод + путь, группируя в проекты, затем выбирайте коды статусов ответа, тип тела, заголовки и опциональную задержку.
- Просмотр запросов в реальном времени: Каждый входящий запрос отображается с заголовками, телом, IP источника, временными метками и идентификаторами запросов (UUID). JSON-тела автоматически форматируются.
- Параметризованные пути и проекты: Поддержка параметров пути (например,
/users/:idсоответствует/users/42) и организация маршрутов в проекты. - Форматы ответов для типичных веб-сценариев: Выбирайте plain text, JSON, HTML, XML, файл, пустой или редирект; заголовки Location настраиваются автоматически для редиректов.
- Поддержка браузера и CORS: Запросы из браузера работают сразу, CORS-заголовки добавляются автоматически. Поддерживаются коды редиректов (301, 302, 307, 308).
- Снимки запросов/ответов и экспорт: Просматривайте, что реально отправлено для каждого запроса, и экспортируйте запросы как cURL, JavaScript fetch или Ruby.
- Надежное логирование запросов через SQLite: Запросы записываются в SQLite мгновенно, данные не теряются при неожиданном закрытии приложения.
Как использовать Decoy
- Установите Decoy из Mac App Store, затем запустите приложение на macOS 14 Sonoma или новее.
- Создайте или выберите проект, затем определите маршруты с помощью пары метод + путь.
- Настройте mock-ответ для каждого маршрута: укажите код статуса, выберите тип тела (включая JSON, HTML, XML или файл), добавьте заголовки и опционально задержку.
- Направьте приложение или инструмент тестирования на локальный домен и порт Decoy (decoy.my:8998 указано в описании продукта).
- Отправляйте запросы из клиента или браузера. Decoy отобразит детали каждого входящего запроса и применит изменения ответа на следующем запросе.
Сценарии использования
- Тестирование обработки webhook и граничных случаев: Отправляйте webhook-запросы в Decoy, чтобы проверить, как код обрабатывает разные коды статусов, тела ответов, заголовки и симулированную задержку.
- Проверка логики API-оберток: Тестируйте API-клиент на контролируемых mock-маршрутах, корректируя полезные нагрузки и заголовки ответов при наблюдении за входящими запросами.
- Воспроизведение поведения редиректов: Настройте маршруты на возврат редиректов (с нужным заголовком Location), чтобы протестировать, как приложение следует или реагирует на 301/302/307/308.
- Раздача статического контента в разработке: Используйте файловые ответы для изображений, PDF или других файлов напрямую, или раздавайте полные HTML-страницы, установив тип тела в HTML.
- Захват и повторное использование реальных взаимодействий запрос/ответ: Используйте снимки запросов и экспортируйте сгенерированные cURL или fetch/Ruby-эквиваленты для воспроизведения проблем или обмена примерами.
FAQ
Требует ли Decoy Docker, облачные туннели или конфигурационные файлы?
Нет. В описании продукта указано, что работает без Docker, облачных туннелей или config-файлов.
Какие платформы и версии поддерживаются?
Decoy требует macOS 14 Sonoma или новее.
Как применяются изменения в mock-ответах?
Изменения (обновление JSON, заголовков или кодов статусов) вступают в силу на следующем входящем запросе.
Может ли Decoy обрабатывать запросы из браузера и CORS?
Да. Запросы из браузера поддерживаются, CORS-заголовки добавляются автоматически.
Где хранятся данные запросов?
Запросы записываются в SQLite мгновенно, и в описании продукта отмечено, что ничего не теряется при неожиданном закрытии приложения.
Альтернативы
- Локальные HTTP mock-серверы (универсальные инструменты): Инструменты этой категории также предоставляют локальные маршруты и управляемые ответы, обычно через конфигурационные файлы или контейнеры; акцент Decoy — нативный интерфейс macOS без Docker.
- Специализированные платформы для API-мокирования (облачные сервисы): Они могут симулировать маршруты по сети, но обычно требуют внешней настройки и развертывания вместо локального mock-сервера.
- Библиотеки для заглушек запросов/ответов или тестовые фреймворки: Некоторые команды используют кодовые заглушки в тестах; это отличается от автономного локального сервера Decoy с UI для просмотра запросов и редактирования ответов.
- Инструменты для тестирования API с поддержкой мокирования: Некоторые интерактивные API-клиенты поддерживают мокирование или локальные симуляции; рабочие процессы могут отличаться, особенно в части просмотра запросов, проектов и функций снимков/экспорта ответов.
Альтернативы
Falconer
Falconer — самообновляемая платформа знаний для быстрых команд: пишите, делитесь и находите надежную внутреннюю документацию и контекст кода в одном месте.
OpenFlags
OpenFlags — open source self-hosted система feature flags для progressive delivery: локальная оценка в SDK и простая REST контрольная плоскость для безопасных релизов.
skills-janitor
skills-janitor для Claude Code: аудит и учет навыков, сравнение с девятью командами /janitor-* и поиск дублей без зависимостей.
Rectify
Rectify — единая платформа операций для SaaS: мониторинг, аналитика, поддержка, роадмапы, changelog и управление агентами в одном рабочем пространстве.
GitBoard
GitBoard — нативное приложение для строки меню macOS для GitHub Projects: смотрите канбан, фильтруйте по статусам, ищите issue и создавайте/назначайте.
Studio CLI
Управляйте функциями WordPress Studio из терминала: локальные сайты, превью на WordPress.com, создание/обновление/удаление и аутентификация.