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: