Lezen in het Engels

Delen via


Gesimuleerde antwoorden

Als u gesimuleerde antwoorden wilt definiëren, maakt u een bestand met de naam mocks.json in de huidige werkmap. Met dit bestand kunt u een specifieke set mocks definiëren voor elk project waarmee u werkt. Het bestand bevat een object met een mocks matrix die mockobjecten bevat.

Tip

In plaats van het mocks-bestand handmatig te maken, kunt u de MockGeneratorPlugin gebruiken om het mocks-bestand te genereren op basis van de onderschepte aanvragen.

In de volgende configuratie ziet u twee gesimuleerde antwoorden voor het ophalen van informatie over de huidige gebruiker. Wanneer u informatie opvraagt over de huidige gebruiker, reageert de proxy met een gesimuleerd antwoord. Wanneer u de informatie over de foto van de gebruiker opvraagt, retourneert proxy een 404-statuscode.

JSON
{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/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
      }
    }
  ]
}

Volgordeprioriteit

Mocks worden vergeleken in de volgorde waarin ze zijn gedefinieerd in het mocks.json bestand. Als u meerdere antwoorden met dezelfde URL en methode definieert, wordt het eerste overeenkomende antwoord gebruikt.

Wanneer u de volgende configuratie gebruikt, reageert de proxy op alle GET aanvragen naar https://graph.microsoft.com/v1.0/me/photo met 500 Internal Server Error.

JSON
{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.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
      }
    }
  ]
}

Ondersteuning voor jokertekens

De proxy ondersteunt het gebruik van jokertekens in de URL-eigenschap. U kunt het sterretje (*) gebruiken om een willekeurige reeks tekens in de URL te vinden.

Wanneer u de volgende configuratie gebruikt, reageert proxy op alle aanvragen om het profiel van een gebruiker op te halen met hetzelfde antwoord.

JSON
{
  "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"
    }
  }
}

Wanneer u de volgende configuratie gebruikt, retourneert proxy dezelfde afbeelding van schijf wanneer u aanvraagt om het binaire bestand van de foto van een gebruiker op te halen.

JSON
{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/users/*/photo/$value"
  },
  "response": {
    "body": "@picture.jpg",
    "headers": [
      {
        "name": "content-type",
        "value": "image/jpeg"
      }
    ]
  }
}

Wanneer u de volgende configuratie gebruikt, retourneert proxy hetzelfde antwoord wanneer u aanvraagt om het profiel van de huidige gebruiker op te halen met een queryreeksparameter.

JSON
{
  "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"
    }
  }
},

Reageren met de inhoud van een bestand

Als u uw mocks-bestand overzichtelijk en georganiseerd wilt houden, kunt u de inhoud van het antwoord opslaan in een afzonderlijk bestand en ernaar verwijzen in het mocks-bestand. Als u Dev Proxy wilt instrueren, stelt u de eigenschap @ in op gevolgd door het bestandspad ten opzichte van het mocks-bestand om de body hoofdtekst van de mocks te laden.

De volgende configuratie van een mock-antwoord geeft dev proxy bijvoorbeeld de opdracht om te reageren op een aanvraag met https://graph.microsoft.com/v1.0/me de inhoud van het response.json bestand zich in dezelfde map als het mocks-bestand.

JSON
{
  "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"
      }
    ]
  }
}

Het gebruik van het @-token werkt met tekst en binaire bestanden.

Ondersteuning voor Microsoft Graph Batch

Dev Proxy ondersteunt het nabootsen van antwoorden die in batchaanvragen naar Microsoft Graph worden verzonden.

Er zijn geen speciale vereisten voor het opnemen van antwoorden op batchaanvragen in uw mock-bestanden, maar als een aanvraag niet overeenkomt met een gesimuleerd antwoord, wordt er een 502 Bad Gateway antwoord geretourneerd.

Niet-vermockte ondersteuning aanvragen

Dev Proxy ondersteunt het genereren van een fout wanneer een proxy een niet-overgeslagen aanvraag onderschept. De mogelijkheid om niet-verplaatste aanvragen te mislukken, is handig voor het identificeren van aanvragen die u hebt gemist in uw mocks-bestand.

Als u deze functie wilt inschakelen, voegt u de instelling toe aan de blockUnmockedRequests configuratiesectie MockResponsePlugin in het devproxyrc-bestand en schakelt u deze in.

JSON
{
  "mocksPlugin": {
    "mocksFile": "mocks.json",
    "blockUnmockedRequests": true
  }
}

Wanneer een niet-verzonden aanvraag wordt onderschept, wordt een 502 Bad Gateway antwoord geretourneerd.

Volgende stap

Meer informatie over MockResponsePlugin.

Voorbeelden

Zie ook de gerelateerde Dev Proxy-voorbeelden: