UStackUStack
Decoy icon

Decoy

Decoy est un mock server natif macOS pour simuler localement des API et webhooks : définissez des endpoints, inspectez les requêtes et renvoyez des réponses.

Decoy

Qu'est-ce que Decoy ?

Decoy est un mock server natif macOS pour les développeurs qui doivent simuler localement des endpoints HTTP et le comportement des webhooks. Il vous permet de définir des routes, d'inspecter les requêtes entrantes et de renvoyer des réponses mock contrôlées pour tester les wrappers API, la gestion des requêtes, les redirections et les modes de défaillance sans services externes.

L'objectif principal de Decoy est le test local à la demande : vous pointez votre client vers le domaine et le port locaux de Decoy, vous observez chaque requête à son arrivée, et vous ajustez les réponses des endpoints pour tester votre code sur les scénarios de votre choix.

Fonctionnalités principales

  • Application native macOS avec démarrage instantané : Fonctionne comme une application SwiftUI et se lance rapidement sans Docker, tunnels cloud ou étapes de configuration.
  • Contrôles des endpoints et requêtes/réponses : Définissez des paires méthode + chemin, regroupées par projets, puis choisissez les codes de statut de réponse, le type de corps, les en-têtes et un délai optionnel.
  • Inspection en direct des requêtes : Chaque requête entrante affiche en-têtes, corps, IP source, horodatages et identifiants (UUID). Les corps JSON sont auto-formatés.
  • Chemins et projets paramétrés : Prise en charge des paramètres de chemin (ex. /users/:id correspond à /users/42) et organisation des endpoints en projets.
  • Formats de réponse pour scénarios web courants : Choisissez texte brut, JSON, HTML, XML, fichier, vide ou redirection ; configurez automatiquement les en-têtes Location pour les redirections.
  • Support navigateur et CORS : Les requêtes basées navigateur fonctionnent directement, avec en-têtes CORS ajoutés automatiquement. Codes de redirection (301, 302, 307, 308) pris en charge.
  • Instantanés et exports de requêtes/réponses : Visualisez ce qui a été renvoyé pour chaque requête et exportez en cURL, JavaScript fetch ou Ruby.
  • Journalisation durable via SQLite : Les requêtes sont écrites dans SQLite immédiatement pour éviter toute perte en cas d'arrêt imprévu de l'app.

Comment utiliser Decoy

  1. Installez Decoy depuis le Mac App Store, puis lancez l'app sur macOS 14 Sonoma ou ultérieur.
  2. Créez ou sélectionnez un projet, puis définissez des endpoints avec une paire méthode et chemin.
  3. Configurez la réponse mock de chaque endpoint : définissez un code de statut, choisissez un type de corps (JSON, HTML, XML ou fichier), ajoutez des en-têtes et optionnellement un délai.
  4. Pointez votre app ou outil de test vers le domaine et port locaux de Decoy (decoy.my:8998 est référencé dans la description produit).
  5. Envoyez des requêtes depuis votre client ou navigateur. Decoy affiche les détails de chaque requête entrante et applique les changements de réponse à la suivante.

Cas d'usage

  • Test de gestion des webhooks et cas limites : Envoyez des requêtes webhook à Decoy pour vérifier le traitement par votre code de codes de statut variés, corps de réponse, en-têtes et latence simulée.
  • Vérification de la logique des wrappers API : Testez un client API sur des endpoints mock contrôlés, en ajustant charges et en-têtes tout en observant les requêtes entrantes.
  • Reproduction du comportement de redirection : Configurez des endpoints pour renvoyer des redirections (avec en-tête Location approprié) et testez le suivi ou la réaction de votre app aux 301/302/307/308.
  • Service de contenu statique en développement : Utilisez des réponses fichier pour servir images, PDF ou autres, ou pages HTML complètes en définissant le type de corps sur HTML.
  • Capture et réutilisation d'interactions réelles requête/réponse : Utilisez les instantanés de requêtes et exportez les équivalents cURL ou fetch/Ruby pour reproduire des problèmes ou partager des exemples.

FAQ

Decoy nécessite-t-il Docker, tunnels cloud ou fichiers de configuration ? Non. La description produit indique qu'il fonctionne sans Docker, tunnels cloud ni fichiers de config.

Quelles plateformes et versions sont prises en charge ? Decoy nécessite macOS 14 Sonoma ou ultérieur.

Comment les modifications des réponses mock sont-elles appliquées ? Les éditions (JSON, en-têtes ou codes de statut) prennent effet sur la requête entrante suivante.

Decoy gère-t-il les requêtes navigateur et CORS ? Oui. Les requêtes navigateur sont prises en charge, avec en-têtes CORS ajoutés automatiquement.

Où sont stockées les données de requêtes ? Les requêtes sont écrites dans SQLite immédiatement, et la description produit note qu'aucune donnée n'est perdue en cas d'arrêt imprévu de l'app.

Alternatives

  • Serveurs mock HTTP locaux (outils génériques) : Les outils de cette catégorie fournissent aussi des endpoints locaux et des réponses contrôlables, généralement via des fichiers de configuration ou des conteneurs ; Decoy met l’accent sur une interface native macOS sans Docker.
  • Plateformes dédiées de mock d’API (services hébergés) : Celles-ci peuvent simuler des endpoints sur le réseau, mais nécessitent habituellement une configuration et un déploiement externes plutôt qu’un serveur mock local.
  • Bibliothèques de stubs requête/réponse ou frameworks de test : Certaines équipes utilisent des stubs basés sur du code dans leur suite de tests ; cela diffère du serveur local autonome de Decoy avec une interface pour inspecter les requêtes et éditer les réponses.
  • Outils de test d’API avec support de mock : Certains clients API interactifs supportent le mock ou les simulations locales ; les workflows peuvent différer, notamment pour l’inspection dédiée des requêtes, les projets et les fonctionnalités de snapshot/export des réponses.