Partilhar via


MockResponsePlugin

Simula respostas.

Captura de ecrã de uma linha de comandos com o Proxy Dev a simular a resposta para um pedido à API do GitHub.

Definição da 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 Predefinição
mocksFile Caminho para o ficheiro que contém respostas falsas mocks.json
blockUnmockedRequests Resposta de retorno 502 Bad Gateway para pedidos que não são simulados false

Opções da linha de comandos

Nome Descrição Predefinição
-n, --no-mocks Desativar o carregamento de pedidos simulados false
--mocks-file Caminho para o ficheiro que contém respostas falsas -

Mocks file examples (Exemplos de ficheiros fictícios)

Seguem-se exemplos de objetos simulados.

Responder com o corpo

Resposta a um pedido 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

Responda a um pedido com uma resposta 404 Não Encontrado.

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

Responder com dados binários

Responder a um pedido com uma imagem binária carregada a partir de um ficheiro no 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 a nth pedido

Responda a um pedido apenas após a segunda vez que for chamado.

{
  "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 à correspondência do corpo do pedido

Responda a um pedido que contém uma cadeia 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..."
    }
  }
}

Mocks file properties (Propriedades do ficheiro mocks)

Propriedade Descrição Obrigatório
request Objeto de pedido que define o pedido para responder sim
response Objeto de resposta que define a resposta a devolver sim

Pedir objeto

Cada pedido tem as seguintes propriedades:

Propriedade Descrição Obrigatório Valor predefinido Valor da amostra
url URL absoluto para um ponto final de API a que responder sim https://jsonplaceholder.typicode.com/posts
method Verbo HTTP utilizado para corresponder o pedido com url não GET GET
nth Determina que o proxy deve responder apenas após quando intercetar o pedido pela n.ª vez não 2
bodyFragment Uma cadeia que deve estar presente no corpo do pedido não foo

Observações

Utilize asterisco url (*) na propriedade se quiser corresponder a qualquer série de carateres no URL. Por exemplo, https://jsonplaceholder.typicode.com/* correspondências https://jsonplaceholder.typicode.com/posts e https://jsonplaceholder.typicode.com/comments. No runtime, o Proxy Dev converte cada * um numa expressão .*regular .

Ao definir simulações, coloque primeiro as simulações mais específicas. Por exemplo, se tiver duas simulações, uma para https://jsonplaceholder.typicode.com/posts e outra para https://jsonplaceholder.typicode.com/*, coloque primeiro a primeira simulação. Caso contrário, o Proxy de Programador corresponde primeiro à segunda simulação e devolve a resposta para https://jsonplaceholder.typicode.com/* todos os pedidos.

Utilize a nth propriedade se precisar de enviar um diferente para o mesmo URL de pedido. Por exemplo, utilize-a para simular uma operação de execução prolongada. Quando chamar a API pela primeira vez, esta devolve uma resposta com uma inprogress mensagem. Da segunda vez que chamar a API, esta devolve uma resposta com a completed mensagem. Para obter mais informações sobre a nth propriedade, veja Simular pedido nth.

Com a bodyFragment propriedade , pode corresponder os pedidos com base no conteúdo do corpo. Por exemplo, se quiser corresponder aos pedidos que contêm a foo cadeia no corpo, defina a bodyFragment propriedade como foo. O Proxy de Programador utiliza bodyFragment apenas para pedidos que não GETsejam .

Objeto de resposta

Cada resposta tem as seguintes propriedades:

Propriedade Descrição Obrigatório Valor predefinido Valor da amostra
body Corpo a enviar como resposta ao pedido não vazio { "foo": "bar" }
statusCode Código de estado HTTP de resposta não 200 404
headers Matriz de cabeçalhos a incluir na resposta não vazio [{ name: "content-type", "value": "application/json" }]

Observações

Se quiser devolver dados binários, defina a body propriedade para um valor de cadeia que comece com @ seguido de caminho de ficheiro em relação ao ficheiro mocks. Por exemplo, @picture.jpg devolve a imagem armazenada no picture.jpg ficheiro no mesmo diretório que o ficheiro mocks.