Risposte fittizie

Per definire risposte fittizie, creare un file denominato mocks.json nella directory di lavoro corrente. Questo file consente di definire un set specifico di simulazioni per ogni progetto con cui si lavora. Il file contiene un oggetto con una mocks matrice contenente oggetti fittizi .

Suggerimento

Anziché creare manualmente il file fittizio, è possibile usare per MockGeneratorPlugin generare il file fittizio in base alle richieste intercettate.

La configurazione seguente illustra due risposte fittizie per il recupero di informazioni sull'utente corrente. Quando si richiedono informazioni sull'utente corrente, il proxy risponde con una risposta fittizia. Quando richiedi le informazioni sulla foto dell'utente, il proxy restituisce un codice di stato 404.

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

Precedenza dell'ordine

Le simulazioni vengono confrontate nell'ordine in cui sono definite nel mocks.json file. Se si definiscono più risposte con lo stesso URL e metodo, viene usata la prima risposta corrispondente.

Quando si usa la configurazione seguente, il proxy risponde a tutte le GET richieste a https://graph.microsoft.com/v1.0/me/photo con 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
      }
    }
  ]
}

Supporto di caratteri jolly

Il proxy supporta l'uso di caratteri jolly nella proprietà URL. È possibile usare il carattere asterisco (*) per trovare le corrispondenze con qualsiasi serie di caratteri nell'URL.

Quando si usa la configurazione seguente, il proxy risponde a tutte le richieste per ottenere il profilo di qualsiasi utente con la stessa risposta.

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

Quando si usa la configurazione seguente, il proxy restituisce la stessa immagine dal disco quando si richiede di ottenere il file binario della foto di un utente.

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

Quando si usa la configurazione seguente, il proxy restituisce la stessa risposta quando si richiede di ottenere il profilo dell'utente corrente con qualsiasi parametro della stringa di query.

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

Rispondere con il contenuto di un file

Per mantenere pulito e organizzato il file fittizio, è possibile archiviare il contenuto della risposta in un file separato e farvi riferimento nel file fittizio. Per indicare a Dev Proxy di caricare il corpo della risposta fittizia da un file, impostare la body proprietà su @ seguita dal percorso del file relativo al file fittizio.

Ad esempio, la configurazione della risposta fittizia seguente indica a Dev Proxy di rispondere a qualsiasi richiesta a https://graph.microsoft.com/v1.0/me con il contenuto del response.json file che si trova nella stessa cartella del file fittizio.

{
  "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'uso di @-token funziona con file di testo e binari.

Supporto di Microsoft Graph Batch

Dev Proxy supporta risposte fittizie inviate in richieste batch a Microsoft Graph.

Non sono previsti requisiti speciali per l'inclusione di risposte alle richieste batch nei file fittizi, ma se una richiesta non corrisponde a una risposta fittizia, viene restituita una 502 Bad Gateway risposta.

Supporto per richieste non rilevate

Dev Proxy supporta la generazione di un errore quando il proxy intercetta una richiesta non rilevata. La possibilità di interrompere le richieste non rilevate è utile per identificare le richieste perse nel file fittizio.

Per abilitare questa funzionalità, aggiungere e abilitare l'impostazione blockUnmockedRequests su MockResponsePlugin config sezione nel file devproxyrc .

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

Quando viene intercettata una richiesta non rilevata, viene restituita una 502 Bad Gateway risposta.

Passaggio successivo

Altre informazioni su MockResponsePlugin.

Esempi

Vedere anche gli esempi correlati di Dev Proxy: