Partager via


Simuler des réponses fictifs sur Internet

L’utilisation du proxy de développement est le moyen le plus simple de simuler une API. Que vous développiez le frontal et que l’API ne soit pas prête, que vous deviez intégrer votre back-end à un service externe, ou que vous vouliez tester votre application avec différentes réponses, Dev Proxy peut vous aider à simuler des réponses d’API. Lorsque vous intégrez votre API aux services cloud, vous devez exposer votre API sur Internet afin que le service cloud puisse y accéder. Pour exposer sur Internet des réponses fictives simulées par le proxy de développement, utilisez Dev Tunnels. Cet article explique comment configurer des réponses fictifs à exposer sur Internet à l’aide de Dev Tunnels.

Définir des réponses fictives

Pour exposer des réponses fictives simulées par le proxy de développement sur Internet, commencez par configurer les simulations.

Importante

À ce stade, Dev Tunnels prend uniquement en charge l’exposition de réponses fictives HTTP sur Internet.

Créer des réponses fictives

Créez un fichier nommé mocks.json qui contient les réponses fictifs pour votre API personnalisée. Par exemple, pour simuler une GET demande à http://api.contoso.com/products, définissez :

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
  "mocks": [
    {
      "request": {
        "url": "http://api.contoso.com/products",
        "method": "GET"
      },
      "response": {
        "headers": [
          {
            "name": "content-type",
            "value": "application/json"
          }
        ],
        "body": [
          {
            "id": 1,
            "name": "Contoso Coffee Beans",
            "price": 12.99
          },
          {
            "id": 2,
            "name": "Contoso Espresso Machine",
            "price": 249.99
          }
        ]
      }
    }
  ]
}

Vous pouvez également simuler des erreurs, des réponses binaires ou des réponses conditionnelles à l’aide statusCodede , nthou bodyFragment.

Configurer le MockResponsePlugin

Créez un fichier de configuration du proxy de développement nommé devproxyrc.json et activez les MockResponsePluginéléments suivants :

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "MockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mocksPlugin"
    }
  ],
  "urlsToWatch": [
    "http://api.contoso.com/*"
  ],
  "mocksPlugin": {
    "mocksFile": "mocks.json"
  }
}

Importante

Pour faire correspondre plusieurs points de terminaison, utilisez des caractères génériques dans urlsToWatch. Pour garantir une correspondance correcte, placez d'abord les maquettes plus spécifiques dans votre mocks.json.

Vérifier la configuration

Vérifiez que les maquettes fonctionnent correctement en exécutant le proxy de développement et en envoyant des requêtes à l’API simulée.

Démarrez le proxy de développement, en supposant que vous avez enregistré la configuration du proxy de développement dans un fichier nommé devproxyrc.json dans le répertoire de travail actuel :

devproxy

Testez votre simulation en envoyant une requête via le proxy de développement :

curl -x http://127.0.0.1:8000 http://api.contoso.com/products

Vous devriez recevoir la liste des produits fictifs définie dans mocks.json.

Exposer l’API fictif avec Dev Tunnels

Pour exposer des réponses fictives sur Internet, démarrez un tunnel de développement mappé au port du proxy de développement. Configurez le tunnel pour utiliser le nom d’hôte configuré pour l’API simulée.

Avertissement

Autoriser l’accès anonyme à un tunnel de développement signifie que toute personne sur Internet est en mesure de se connecter à votre serveur local, s’il peut deviner l’ID du tunnel de développement.

devtunnel host -p 8000 -a --host-header api.contoso.com

Cette commande mappe le port du proxy de développement à une URL HTTP publique. Vous pouvez désormais accéder à votre API fictive à partir de n’importe où :

curl http://<your-tunnel-id>-8000.<region>.devtunnels.ms/products