Compartilhar via


Respostas simuladas

Para definir respostas simuladas, crie um arquivo chamado mocks.json no diretório de trabalho atual. Esse arquivo permite que você defina um conjunto específico de simulações para cada projeto com o qual você trabalha. O arquivo contém um objeto com uma mocks matriz que contém objetos fictícios .

Dica

Em vez de criar o arquivo de simulações manualmente, você pode usar o MockGeneratorPlugin para gerar o arquivo de simulações com base nas solicitações interceptadas.

A configuração a seguir demonstra duas respostas simuladas para recuperar informações sobre o usuário atual. Quando você solicita informações sobre o usuário atual, o proxy responde com uma resposta simulada. Quando você solicita as informações sobre a foto do usuário, o proxy retorna um código 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
      }
    }
  ]
}

Precedência de pedido

As simulações são correspondidas na ordem em que são definidas no mocks.json arquivo. Se você definir várias respostas com a mesma URL e método, a primeira resposta correspondente será usada.

Quando você usa a configuração a seguir, o proxy responde a todas as GET solicitações para https://graph.microsoft.com/v1.0/me/photo com 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
      }
    }
  ]
}

Suporte a curinga

O proxy dá suporte ao uso de curingas na propriedade URL. Você pode usar o caractere asterisco (*) para corresponder a qualquer série de caracteres na URL.

Quando você usa a configuração a seguir, o proxy responde a todas as solicitações para obter o perfil de qualquer usuário com a mesma resposta.

{
  "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 você usa a configuração a seguir, o proxy retorna a mesma imagem do disco quando você solicita obter o binário da foto de qualquer usuário.

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

Quando você usa a configuração a seguir, o proxy retorna a mesma resposta quando você solicita para obter o perfil do usuário atual com qualquer parâmetro de cadeia de caracteres de consulta.

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

Responder com o conteúdo de um arquivo

Para manter seu arquivo de simulações limpo e organizado, você pode armazenar o conteúdo da resposta em um arquivo separado e referenciá-lo no arquivo mocks. Para instruir o Proxy de Desenvolvimento, para carregar o corpo da resposta simulada de um arquivo, defina a body propriedade como @ seguida pelo caminho do arquivo em relação ao arquivo de simulações.

Por exemplo, a configuração de resposta simulada a seguir instrui o Proxy de Desenvolvimento a responder a qualquer solicitação para https://graph.microsoft.com/v1.0/me com o conteúdo do response.json arquivo localizado na mesma pasta que o arquivo de simulação.

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

O uso do @-token funciona com arquivos binários e de texto.

Suporte ao Lote do Microsoft Graph

O Proxy de Desenvolvimento dá suporte a respostas simuladas que são enviadas em solicitações em lote para o Microsoft Graph.

Não há requisitos especiais para incluir respostas a solicitações em lote em seus arquivos fictícios, no entanto, se uma solicitação não for correspondida com uma resposta simulada, uma 502 Bad Gateway resposta será retornada.

Suporte à solicitação sem choque

O Proxy de Desenvolvimento dá suporte à criação de um erro quando o proxy intercepta uma solicitação sem choques. A capacidade de falhar solicitações sem choque é útil para identificar solicitações que você perdeu no arquivo de simulações.

Para habilitar esse recurso, adicione e habilite a blockUnmockedRequests configuração para a seção de configuração MockResponsePlugin no arquivo devproxyrc .

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

Quando uma solicitação sem choque é interceptada, uma 502 Bad Gateway resposta é retornada.

Próxima etapa

Saiba mais sobre o MockResponsePlugin.

Exemplos

Confira também os exemplos de Proxy de Desenvolvimento relacionados: