Partilhar via


Respostas falsas

Para definir respostas falsas, crie um ficheiro com o nome mocks.json no diretório de trabalho atual. Este ficheiro permite-lhe definir um conjunto específico de simulações para cada projeto com o qual trabalha. O ficheiro contém um objeto com uma mocks matriz que contém objetos simulados .

Dica

Em vez de criar manualmente o ficheiro mocks, pode utilizar o MockGeneratorPlugin para gerar o ficheiro mocks com base nos pedidos intercetados.

A configuração seguinte demonstra duas respostas falsas para obter informações sobre o utilizador atual. Quando pede informações sobre o utilizador atual, o proxy responde com uma resposta falsa. Quando pede as informações sobre a fotografia do utilizador, o proxy devolve um código de estado 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
      }
    }
  ]
}

Precedência da encomenda

As simulações são correspondidas pela ordem pela qual são definidas no mocks.json ficheiro. Se definir várias respostas com o mesmo URL e método, é utilizada a primeira resposta correspondente.

Quando utiliza a seguinte configuração, o proxy responde a todos os GET pedidos 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 de carateres universais

O proxy suporta a utilização de carateres universais na propriedade URL. Pode utilizar o caráter asterisco (*) para corresponder a qualquer série de carateres no URL.

Quando utiliza a seguinte configuração, o proxy responde a todos os pedidos para obter o perfil de qualquer utilizador 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 utiliza a seguinte configuração, o proxy devolve a mesma imagem do disco quando pede para obter o binário da fotografia de qualquer utilizador.

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

Quando utiliza a seguinte configuração, o proxy devolve a mesma resposta quando pede para obter o perfil do utilizador atual com qualquer parâmetro de cadeia 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 ficheiro

Para manter o ficheiro simulado limpo e organizado, pode armazenar os conteúdos da resposta num ficheiro separado e referenciá-lo no ficheiro mocks. Para instruir o Proxy Dev, para carregar o corpo de resposta simulada de um ficheiro, defina a body propriedade como @ seguida pelo caminho do ficheiro em relação ao ficheiro mocks.

Por exemplo, a seguinte configuração de resposta simulada instrui o Proxy de Programador a responder a qualquer pedido https://graph.microsoft.com/v1.0/me com o conteúdo do response.json ficheiro localizado na mesma pasta que o ficheiro mocks.

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

A utilização do @-token funciona com ficheiros binários e de texto.

Suporte do Microsoft Graph Batch

O Proxy de Desenvolvimento suporta respostas simuladas que são enviadas em pedidos em lote para o Microsoft Graph.

Não existem requisitos especiais para incluir respostas a pedidos em lote nos seus ficheiros fictícios. No entanto, se um pedido não corresponder a uma resposta simulada, é devolvida uma 502 Bad Gateway resposta.

Suporte para pedidos não acaslados

O Proxy Dev suporta a origem de um erro quando o proxy interceta um pedido não acasalado. A capacidade de falhar pedidos sem limites é útil para identificar os pedidos que perdeu no seu ficheiro mocks.

Para ativar esta funcionalidade, adicione e ative a blockUnmockedRequests definição para a secção de configuração MockResponsePlugin no ficheiro devproxyrc .

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

Quando um pedido não intercetado é intercetado, é devolvida uma 502 Bad Gateway resposta.

Passo seguinte

Saiba mais sobre o MockResponsePlugin.

Amostras

Veja também os exemplos de Proxy de Programador relacionados: