Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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. Ce qui est génial à l’aide du proxy de développement est qu’il ne nécessite aucune modification du code de votre application. Vous définissez des réponses fictives pour toute API avec laquelle votre application interagit et dev Proxy intercepte les requêtes et répond avec les réponses factices que vous avez définies.
Pour simuler des réponses d’API, vous devez effectuer deux opérations :
- Créez un fichier avec des réponses fictifs.
- Configurez le proxy Dev pour utiliser les réponses fictives.
Conseil / Astuce
Si vous utilisez Visual Studio Code, envisagez d’installer l’extension Dev Proxy Toolkit . Il simplifie considérablement l’utilisation des fichiers de configuration du proxy de développement.
Créer un fichier avec des réponses fictifs
Dev Proxy simule les réponses de l'API en utilisant le MockResponsePlugin. Le plug-in vous permet de définir un ensemble de réponses fictifs. Vous définissez les simulations dans un fichier distinct. L’extrait de code suivant illustre une réponse simulée simple pour une GET demande à https://jsonplaceholder.typicode.com/posts/1.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.schema.json",
"mocks": [
{
"request": {
"url": "https://jsonplaceholder.typicode.com/posts/1",
"method": "GET"
},
"response": {
"statusCode": 200,
"body": {
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
},
"headers": [
{
"name": "Date",
"value": "Wed, 19 Feb 2025 09:03:37 GMT"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "292"
},
// [...] trimmed for brevity
]
}
}
]
}
Conseil / Astuce
Au lieu de créer manuellement le fichier fictif, vous pouvez utiliser le MockGeneratorPlugin fichier pour générer le fichier fictif en fonction des requêtes interceptées.
Priorité des commandes
Le proxy de développement associe les simulations dans l’ordre dans lequel vous les définissez dans le fichier de simulations. Si vous définissez plusieurs réponses avec la même URL et la même méthode, le proxy de développement utilise la première réponse correspondante.
Lorsque vous utilisez la configuration suivante, le proxy répond à toutes les GET demandes à https://graph.microsoft.com/v1.0/me/photo avec 500 Internal Server Error.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 500
}
},
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
]
}
Prise en charge des caractères génériques
Le proxy de développement prend en charge l’utilisation de caractères génériques dans la propriété URL. Vous pouvez utiliser le caractère astérisque (*) pour faire correspondre n’importe quelle série de caractères dans l’URL.
Lorsque vous utilisez la configuration suivante, le proxy de développement répond à toutes les demandes pour obtenir le profil d’un utilisateur avec la même réponse.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*"
},
"response": {
"body": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"businessPhones": ["+1 425 555 0109"],
"displayName": "Adele Vance",
"givenName": "Adele",
"jobTitle": "Product Marketing Manager",
"mail": "AdeleV@M365x214355.onmicrosoft.com",
"mobilePhone": null,
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "AdeleV@M365x214355.onmicrosoft.com",
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
}
}
}
]
}
Lorsque vous utilisez la configuration suivante, le proxy de développement retourne la même image à partir du disque lorsque vous demandez d’obtenir le fichier binaire de la photo d’un utilisateur.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*/photo/$value"
},
"response": {
"body": "@picture.jpg",
"headers": [
{
"name": "content-type",
"value": "image/jpeg"
}
]
}
}
]
}
Lorsque vous utilisez la configuration suivante, le proxy de développement retourne la même réponse lorsque vous demandez d’obtenir le profil de l’utilisateur actuel avec n’importe quel paramètre de chaîne de requête.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me?*"
},
"response": {
"body": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"businessPhones": [
"+1 412 555 0109"
],
"displayName": "Megan Bowen",
"givenName": "Megan",
"jobTitle": "Auditor",
"mail": "MeganB@M365x214355.onmicrosoft.com",
"mobilePhone": null,
"officeLocation": "12/1110",
"preferredLanguage": "en-US",
"surname": "Bowen",
"userPrincipalName": "MeganB@M365x214355.onmicrosoft.com",
"id": "48d31887-5fad-4d73-a9f5-3c356e68a038"
}
}
}
]
}
Répondre avec le contenu d’un fichier
Pour nettoyer et organiser votre fichier fictif, vous pouvez stocker le contenu de la réponse dans un fichier distinct et le référencer dans le fichier fictif. Pour indiquer au proxy de développement et pour charger le corps de réponse fictif à partir d’un fichier, définissez la propriété body sur @ suivie du chemin d’accès du fichier relatif au fichier fictif.
Par exemple, la configuration de réponse simulée suivante indique au proxy de développement de répondre à toute demande à https://graph.microsoft.com/v1.0/me avec le contenu du fichier response.json situé dans le même dossier que le fichier des maquettes.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me",
"method": "GET"
},
"response": {
"body": "@response.json",
"headers": [
{
"name": "content-type",
"value": "application/json; odata.metadata=minimal"
}
]
}
}
]
}
@-token fonctionne avec des fichiers binaires et texte.
Configurer le proxy de développement pour utiliser les réponses fictives
Après avoir créé le fichier de simulation, vous devez configurer le proxy de développement pour utiliser les réponses fictives. Pour configurer le proxy de développement pour simuler des réponses, ajoutez MockResponsePlugin à la liste des plug-ins dans le fichier devproxyrc.
{
"$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": "mockResponsePlugin"
}
],
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
"mockResponsePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.schema.json",
"mocksFile": "mocks.json"
},
"logLevel": "information",
"newVersionNotification": "stable",
"showSkipMessages": true
}
Tout d’abord, vous ajoutez le MockResponsePlugin à la liste des plug-ins. Vous incluez une référence à sa section de configuration où vous spécifiez le chemin d’accès à votre fichier fictif.
Lorsque vous démarrez le proxy de développement, il lit le fichier de mocks et utilise les réponses fictives pour répondre aux requêtes qui correspondent aux mocks définis.
Prise en charge des demandes non simulées
Le proxy de développement prend en charge la levée d’une erreur lorsque le proxy intercepte une requête non simulée. La possibilité d’échouer des requêtes non bloquées est utile pour identifier les demandes que vous avez manquées dans votre fichier fictif.
Pour activer cette fonctionnalité, ajoutez et activez le paramètre dans la blockUnmockedRequests section de configuration MockResponsePlugin dans le fichier devproxyrc .
{
"mocksPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.schema.json",
"mocksFile": "mocks.json",
"blockUnmockedRequests": true
}
}
Lorsque le proxy de développement intercepte une requête qu’il ne peut pas simuler, elle retourne une 502 Bad Gateway réponse.
Étape suivante
En savoir plus sur mockResponsePlugin.
Échantillons
Consultez également les exemples de proxy de développement associés :