MockResponsePlugin
Simule les réponses.
Définition de instance de plug-in
{
"name": "MockResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "mocksPlugin"
}
Exemple de configuration
{
"mocksPlugin": {
"mocksFile": "mocks.json"
}
}
Propriétés de configuration
Propriété | Description | Default |
---|---|---|
mocksFile |
Chemin d’accès au fichier contenant des réponses simulées | mocks.json |
blockUnmockedRequests |
Réponse de retour 502 Bad Gateway pour les demandes qui ne sont pas moquées |
false |
Options de ligne de commande
Nom | Description | Default |
---|---|---|
-n, --no-mocks |
Désactiver le chargement de requêtes fictives | false |
--mocks-file |
Chemin d’accès au fichier contenant des réponses simulées | - |
Exemples de fichiers fictifs
Voici des exemples d’objets fictifs.
Répondre avec le corps
Réponse à une requête avec une réponse 200 OK et un corps JSON.
{
"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"
}
]
}
}
Répondre avec l’erreur
Répondre à une demande avec une réponse 404 Introuvable.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
Répondre avec des données binaires
Répondez à une demande avec une image binaire chargée à partir d’un fichier sur disque.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*/photo/$value",
"method": "GET"
},
"response": {
"body": "@picture.jpg",
"headers": [
{
"name": "content-type",
"value": "image/jpeg"
}
]
}
}
Répondre à la nth
demande
Ne répondez à une demande qu’après la deuxième fois qu’elle est appelée.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/external/connections/*/operations/*",
"method": "GET",
"nth": 2
},
"response": {
"statusCode": 200,
"body": {
"id": "1.neu.0278337E599FC8DBF5607ED12CF463E4.6410CCF8F6DB8758539FB58EB56BF8DC",
"status": "completed",
"error": null
}
}
}
Répondre en correspondance avec le corps de la demande
Répondez à une demande qui contient une chaîne spécifique dans le corps.
{
"request": {
"url": "https://login.microsoftonline.com/fa15d692-e9c7-4460-a743-29f29522229/oauth2/v2.0/token",
"method": "POST",
"bodyFragment": "scope=https%3A%2F%2Fapi.contoso.com%2FDocuments.Read"
},
"response": {
"headers": [
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
}
],
"body": {
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 3599,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSU..."
}
}
}
Propriétés de fichier fictives
Propriété | Description | Obligatoire |
---|---|---|
request |
Objet request qui définit la demande à laquelle répondre | Oui |
response |
Objet response qui définit la réponse à renvoyer | oui |
Objet Requête
Chaque requête a les propriétés suivantes :
Propriété | Description | Obligatoire | Valeur par défaut | Exemple de valeur |
---|---|---|---|---|
url |
URL absolue vers un point de terminaison d’API auquel répondre | oui | https://jsonplaceholder.typicode.com/posts |
|
method |
Verbe HTTP utilisé pour faire correspondre la requête avec url |
non | GET |
GET |
nth |
Détermine que le proxy ne doit répondre qu’après lors de l’interception de la demande pour la nième fois | non | 2 |
|
bodyFragment |
Chaîne qui doit être présente dans le corps de la demande | non | foo |
Remarques
Utilisez un astérisque (*
) dans la url
propriété si vous souhaitez faire correspondre une série de caractères dans l’URL. Par exemple, https://jsonplaceholder.typicode.com/*
correspond à https://jsonplaceholder.typicode.com/posts
et https://jsonplaceholder.typicode.com/comments
. Au moment de l’exécution, dev proxy convertit chacun *
en expression .*
régulière .
Lorsque vous définissez des fictives, placez d’abord les fictives les plus spécifiques. Par exemple, si vous avez deux fictives, l’une pour https://jsonplaceholder.typicode.com/posts
et l’autre pour https://jsonplaceholder.typicode.com/*
, placez la première fictive en premier. Dans le cas contraire, le proxy de développement correspond en premier à la deuxième simulation et retourne la réponse pour https://jsonplaceholder.typicode.com/*
toutes les demandes.
Utilisez la nth
propriété si vous devez envoyer une autre à la même URL de requête. Par exemple, utilisez-la pour simuler une opération de longue durée. La première fois que vous appelez l’API, elle retourne une réponse avec un inprogress
message. La deuxième fois que vous appelez l’API, elle retourne une réponse avec le completed
message. Pour plus d’informations sur la nth
propriété, consultez Nth request mock.
À l’aide de la bodyFragment
propriété, vous pouvez faire correspondre les demandes en fonction du contenu du corps. Par exemple, si vous souhaitez faire correspondre les demandes qui contiennent la foo
chaîne dans le corps, définissez la propriété sur bodyFragment
foo
. Le proxy de développement utilise bodyFragment
uniquement pour les requêtes autres que GET
.
Objet Réponse
Chaque réponse a les propriétés suivantes :
Propriété | Description | Obligatoire | Valeur par défaut | Exemple de valeur |
---|---|---|---|---|
body |
Corps à envoyer en tant que réponse à la demande | non | empty | { "foo": "bar" } |
statusCode |
Code de status HTTP de réponse | non | 200 |
404 |
headers |
Tableau d’en-têtes à inclure dans la réponse | non | empty | [{ name: "content-type", "value": "application/json" }] |
Remarques
Si vous souhaitez retourner des données binaires, définissez la body
propriété sur une valeur de chaîne qui commence @
par suivie du chemin du fichier par rapport au fichier fictif. Par exemple, @picture.jpg
retourne l’image stockée dans le picture.jpg
fichier dans le même répertoire que le fichier fictif.