MockResponsePlugin
Simula respostas.
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 GET
sejam .
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.