Hébergement public de mocks
Un mock publié fournit à votre équipe un endpoint HTTP avant que la dépendance réelle soit prête. Utilisez-le pour développer un frontend, préparer une démonstration partagée ou provoquer des erreurs et des délais. Echo peut intercepter des requêtes sur le bureau ou publier le mock sur le service public mock.gapfy.io. Le mock publié continue à répondre sans laisser l'application de bureau ouverte.
Les mocks sur le bureau interceptent les requêtes envoyées par Echo lui-même ; ils n'ouvrent pas de serveur HTTP pour une autre application.
Choisir où le mock s'exécute
- Mocks sur le bureau : gardez les requêtes sur votre machine pendant la création et les essais. Ils sont compris dans tous les forfaits Echo, Free compris.
- Hébergement public de mocks : donnez à une autre machine une URL qu'elle peut appeler directement. Publier fait partie d'Echo Pro et Pro AI.
- Dans votre application .NET : utilisez Mock.Client ou Mock.Server avec des règles récupérées par une clé d'application. Le mock n'a pas besoin d'être publié sur le service public, mais récupérer ces règles nécessite le même forfait payant.
Publier votre premier mock
- Ouvrez Mocks dans Maestro et sélectionnez l'espace de travail propriétaire du mock.
- Créez un serveur et ajoutez une route avec une méthode HTTP, un motif de chemin, un statut et une réponse. Choisissez une réponse statique ou un contrat. Vous pouvez aussi partir d'un mock enregistré et synchronisé depuis le bureau.
- Ouvrez le panneau d'hébergement public du serveur et activez la publication. Dans Free, le panneau indique que l'hébergement public ne fait pas partie du forfait et ne permet ni d'activer ni de renouveler l'identifiant public. Consultez les offres actuelles dans la Facturation de Maestro. Avec un forfait payant qui comprend l'hébergement, vous publiez un mock de votre propre espace parce que vous en êtes propriétaire ; publier un mock d'équipe nécessite
Echo/ManageHosting, autorisation attribuée par défaut à l'administrateur de l'organisation. - Copiez l'URL de base exacte affichée par le panneau et ajoutez le chemin de votre route. Le nom d'hôte seul n'est pas un endpoint de mock.
- Appelez la route depuis l'application consommatrice et vérifiez la réponse, y compris
X-Echo-Mock.
Les contrats permettent de générer des réponses structurées et de conserver des versions. Les réponses statiques conviennent lorsqu'un corps exact est nécessaire.
Limites de l'hébergement public
Echo Pro et Pro AI permettent de publier jusqu'à 25 mocks simultanément par organisation. Cette limite est stricte : si 25 mocks sont déjà publiés, vous devez en désactiver un avant d'en publier un autre. Le service mesure 50 000 requêtes servies par mois et par place, mais dépasser ce nombre ne provoque pas le refus de requêtes au titre de cette mesure mensuelle. Free ne permet pas de publier ; ses deux quotas d'hébergement public sont à zéro.
Séparément, le service admet par défaut 300 requêtes par minute et par mock. Si cette limite opérationnelle est dépassée, il répond 429. Ne la confondez pas avec la mesure mensuelle.
Préparer une route utile
Commencez par une route active et testez-la avant d'en ajouter d'autres. Par exemple, créez GET /orders/{id} avec le statut 200 et une réponse JSON. Le paramètre de chemin capture le dernier segment ; une réponse statique peut l'utiliser sous la forme {{path.id}}. Appelez l'URL de base copiée depuis Maestro suivie de /orders/42. La méthode et le chemin doivent correspondre à une route active.
Utilisez un corps statique pour renvoyer un exemple exact. Choisissez le mode Contrat pour générer des données à partir d'une version de contrat. Les valeurs du chemin, les paramètres de requête, les en-têtes et le corps JSON peuvent fournir des données au contrat. Vérifiez le résultat dans son aperçu avant de publier.
Si le contrat définit des scénarios, envoyez X-Echo-Scenario avec le nom du scénario. X-Echo-Seed contrôle la génération aléatoire pour le même contrat et les mêmes entrées, mais les valeurs basées sur la date ou l'heure actuelle peuvent changer. Le scénario doit exister dans le contrat. Un contrat invalide ou un scénario inconnu renvoie une erreur de génération ; le service ne remplace pas silencieusement le résultat par le corps d'exemple enregistré.
Vous pouvez configurer un délai pour tester les états de chargement et les délais d'attente de l'application consommatrice. Le service plafonne ce délai et peut l'omettre lorsque sa capacité de délais simultanés est atteinte. Utilisez le mock pour des tests fonctionnels, sans considérer le délai comme une garantie temporelle ni le service comme un outil de test de charge.
Règles des réponses
Les réponses hébergées acceptent jusqu'à 2 MiB de contenu UTF-8. Le corps d'une requête reçue accepte jusqu'à 1 MiB. Utilisez JSON ou un autre type de contenu de données autorisé. HTML et les autres contenus actifs nécessitent une autorisation explicite sur le serveur et sont servis avec des restrictions d'isolation dans le navigateur.
Les en-têtes de réponse suivent une liste de noms autorisés. Pour vos métadonnées de test, utilisez des noms commençant par X-Mock-. Les en-têtes tels que Set-Cookie, Location et WWW-Authenticate ne sont pas transmis. Le service ajoute aussi ses propres en-têtes de sécurité. Un appel HEAD renvoie les en-têtes sans le corps.
Comprendre un appel en échec
| Résultat | Vérification |
|---|---|
404 mock-server-not-found |
Copiez de nouveau l'URL publique actuelle. Vérifiez si l'identifiant a changé ou si l'hébergement a été désactivé. |
404 mock-route-not-matched |
Vérifiez la méthode HTTP, le chemin et l'activation de la route. |
| 429 | Réduisez la fréquence des appels et respectez Retry-After. Ce contrôle est indépendant du volume mensuel. |
502 mock-generation-failed |
Lisez le code et le chemin du diagnostic, puis corrigez le contrat ou le scénario sélectionné. |
502 mock-response-too-large ou mock-content-type-not-allowed |
Réduisez la réponse ou corrigez le type de contenu et l'option de contenu actif. |
| 503 | Consultez l'état dans Maestro et respectez Retry-After. Un mock suspendu et un service temporairement indisponible demandent des actions différentes. |
L'utilisation compte les réponses configurées dont l'envoi est terminé. Une route introuvable est suivie séparément et ne participe pas à la mesure mensuelle des réponses servies. Le nombre de tentatives peut donc différer de l'utilisation affichée.
Partager en connaissance de cause
Toute personne connaissant l'URL publique peut appeler ses routes. Elle n'est pas protégée par une clé d'application eck_. Utilisez des données fictives, excluez les identifiants des corps et des en-têtes et partagez l'URL avec les seuls destinataires prévus.
Le panneau permet de désactiver l'hébergement public ou de renouveler l'identifiant public pour obtenir une nouvelle URL. Il faut alors mettre à jour les clients. Les opérateurs de la plateforme peuvent suspendre manuellement un mock ou appliquer un blocage global. La suspension manuelle reste en vigueur jusqu'à ce qu'un opérateur la lève ; un blocage global peut aussi expirer. Actualisez le panneau pour consulter son état.
Si l'organisation perd son forfait payant après toute période de grâce, le mock publié n'est pas supprimé : il conserve son URL et son identifiant public, mais il est suspendu. Les appels reçoivent 503 avec le code mock-server-suspended et l'en-tête Retry-After ; respectez la valeur renvoyée par le service. Le motif enregistré dans le panneau n'est pas montré aux appelants. Dès qu'un forfait comprenant l'hébergement public est de nouveau en vigueur et que les règles sont actualisées, cette suspension se lève seule et la même URL répond sans nouvelle publication. Une suspension manuelle imposée par la plateforme exige l'intervention d'un opérateur.
Utiliser les règles dans votre application
Applications et clés explique le scope ServeMocks, utilisé par les règles pour .NET. Choisissez cette voie si votre application doit servir ou intercepter des requêtes avec les règles Echo plutôt qu'appeler l'URL publique. Récupérer ces règles nécessite aussi Echo Pro ou Pro AI, même si le mock n'est pas publié sur le service public.