Réponses simulées
Pour définir des réponses fictives, créez un fichier nommé mocks.json
dans le répertoire de travail actif. Ce fichier vous permet de définir un ensemble spécifique de fictives pour chaque projet avec lequel vous travaillez. Le fichier contient un objet avec un mocks
tableau contenant des objets fictifs .
Conseil
Au lieu de créer manuellement le fichier fictive, vous pouvez utiliser pour MockGeneratorPlugin
générer le fichier fictive en fonction des requêtes interceptées.
La configuration suivante illustre deux réponses fictives pour récupérer des informations sur l’utilisateur actuel. Lorsque vous demandez des informations sur l’utilisateur actuel, le proxy répond avec une réponse factice. Lorsque vous demandez les informations sur la photo de l’utilisateur, le proxy retourne un code 404 status.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/mockresponseplugin.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me",
"method": "GET"
},
"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"
},
"headers": [
{
"name": "content-type",
"value": "application/json; odata.metadata=minimal"
}
]
}
},
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
]
}
Priorité de l’ordre
Les fictives sont mises en correspondance dans l’ordre dans lequel elles sont définies dans le mocks.json
fichier. Si vous définissez plusieurs réponses avec la même URL et la même méthode, la première réponse correspondante est utilisée.
Lorsque vous utilisez la configuration suivante, le proxy répond à toutes les GET
demandes à avec https://graph.microsoft.com/v1.0/me/photo
500 Internal Server Error
.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/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 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 répond à toutes les demandes d’obtention du profil d’un utilisateur avec la même réponse.
{
"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 retourne la même image à partir du disque lorsque vous demandez à obtenir le binaire de la photo d’un utilisateur.
{
"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 retourne la même réponse lorsque vous demandez à obtenir le profil de l’utilisateur actuel avec n’importe quel paramètre de chaîne de requête.
{
"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 que votre fichier fictif reste propre et organisé, vous pouvez stocker le contenu de la réponse dans un fichier distinct et le référencer dans le fichier fictive. Pour demander au proxy dev de charger le corps de la réponse fictive à partir d’un fichier, définissez la body
propriété sur @
suivi du chemin du fichier par rapport au fichier fictif.
Par exemple, la configuration de réponse factice suivante demande au proxy dev de répondre à toute demande https://graph.microsoft.com/v1.0/me
avec le contenu du response.json
fichier situé dans le même dossier que le fichier fictif.
{
"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"
}
]
}
}
L’utilisation de - @
token fonctionne avec des fichiers texte et binaires.
Prise en charge de Microsoft Graph Batch
Dev Proxy prend en charge les réponses fictives envoyées dans les requêtes par lots à Microsoft Graph.
Il n’existe aucune exigence particulière pour inclure des réponses aux demandes par lots dans vos fichiers fictifs. Toutefois, si une demande n’est pas mise en correspondance avec une réponse simulée, une 502 Bad Gateway
réponse est retournée.
Prise en charge des demandes non bloquées
Dev Proxy prend en charge la levée d’une erreur lorsque le proxy intercepte une requête non bloquée. La possibilité d’échouer les demandes 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 à la blockUnmockedRequests
section de configuration MockResponsePlugin dans le fichier devproxyrc .
{
"mocksPlugin": {
"mocksFile": "mocks.json",
"blockUnmockedRequests": true
}
}
Lorsqu’une requête non envoyée est interceptée, une 502 Bad Gateway
réponse est retournée.
Étape suivante
En savoir plus sur MockResponsePlugin.
Exemples
Consultez également les exemples de proxy de développement associés :