Compartilhar via


MockResponsePlugin

Simula respostas.

Captura de tela de um prompt de comando com o Proxy de Desenvolvimento simulando a resposta para uma solicitação à API do GitHub.

Definição de instância de plug-in

{
  "name": "MockResponsePlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
  "configSection": "mocksPlugin"
}

Exemplo de configuração

{
  "mocksPlugin": {
    "mocksFile": "mocks.json"
  }
}

Propriedades de configuração

Propriedade Descrição Padrão
mocksFile Caminho para o arquivo que contém respostas fictícias mocks.json
blockUnmockedRequests Retornar 502 Bad Gateway resposta para solicitações que não são simuladas false

Opções de linha de comando

Name Descrição Padrão
-n, --no-mocks Desabilitar o carregamento de solicitações fictícias false
--mocks-file Caminho para o arquivo que contém respostas fictícias -

Simula exemplos de arquivo

A seguir estão exemplos de objetos fictícios.

Responder com o corpo

Resposta a uma solicitação com uma resposta 200 OK e um corpo 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"
      }
    ]
  }
}

Responder com erro

Responder a uma solicitação com uma resposta 404 Não Encontrada.

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/me/photo",
    "method": "GET"
  },
  "response": {
    "statusCode": 404
  }
}

Responder com dados binários

Responder a uma solicitação com uma imagem binária carregada de um arquivo em disco.

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

Responder na solicitação nth

Responda a uma solicitação somente após a segunda vez que ela for chamada.

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

Responder correspondendo ao corpo da solicitação

Responda a uma solicitação que contém uma cadeia de caracteres específica no corpo.

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

Simula propriedades do arquivo

Propriedade Descrição Obrigatório
request Objeto de solicitação que define a solicitação à qual responder sim
response Objeto response que define a resposta a ser retornada sim

Objeto da solicitação

Cada solicitação tem as seguintes propriedades:

Propriedade Descrição Obrigatório Valor padrão Valor de exemplo
url URL absoluta para um ponto de extremidade de API para responder sim https://jsonplaceholder.typicode.com/posts
method Verbo HTTP usado para corresponder a solicitação com url não GET GET
nth Determina que o proxy deve responder somente depois de interceptar a solicitação pela nona vez não 2
bodyFragment Uma cadeia de caracteres que deve estar presente no corpo da solicitação não foo

Comentários

Use asterisco (*) na url propriedade se quiser corresponder a qualquer série de caracteres na URL. Por exemplo, https://jsonplaceholder.typicode.com/* corresponde a https://jsonplaceholder.typicode.com/posts e https://jsonplaceholder.typicode.com/comments. Em runtime, o Proxy de Desenvolvimento converte cada * um em uma expressão .*regular .

Ao definir simulações, coloque as simulações mais específicas primeiro. Por exemplo, se você tiver duas simulações, uma para https://jsonplaceholder.typicode.com/posts e outra para https://jsonplaceholder.typicode.com/*, coloque a primeira simulação primeiro. Caso contrário, o Proxy de Desenvolvimento corresponderá primeiro à segunda simulação e retornará a resposta para https://jsonplaceholder.typicode.com/* todas as solicitações.

Use a nth propriedade se precisar enviar uma diferente para a mesma URL de solicitação. Por exemplo, use-o para simular uma operação de execução longa. Na primeira vez que você chamar a API, ela retornará uma resposta com uma inprogress mensagem. Na segunda vez que você chamar a API, ela retornará uma resposta com a completed mensagem. Para obter mais informações sobre a nth propriedade , consulte Simular nth request.

Usando a bodyFragment propriedade , você pode corresponder às solicitações com base no conteúdo do corpo. Por exemplo, se você quiser corresponder às solicitações que contêm a foo cadeia de caracteres no corpo, defina a bodyFragment propriedade como foo. O Proxy de Desenvolvimento usa bodyFragment apenas para solicitações diferentes de GET.

Objeto de resposta

Cada resposta tem as seguintes propriedades:

Propriedade Descrição Obrigatório Valor padrão Valor de exemplo
body Corpo a ser enviado como a resposta à solicitação não empty { "foo": "bar" }
statusCode Código de status HTTP de resposta não 200 404
headers Matriz de cabeçalhos a serem incluídos na resposta não empty [{ name: "content-type", "value": "application/json" }]

Comentários

Se você quiser retornar dados binários, defina a body propriedade como um valor de cadeia de caracteres que começa com @ seguido pelo caminho do arquivo em relação ao arquivo de simulações. Por exemplo, @picture.jpg retorna a imagem armazenada no picture.jpg arquivo no mesmo diretório que o arquivo de simulações.