Respuestas ficticias
Para definir respuestas ficticias, cree un archivo denominado mocks.json
en el directorio de trabajo actual. Este archivo le permite definir un conjunto específico de simulacros para cada proyecto con el que trabaje. El archivo contiene un objeto con una mocks
matriz que contiene objetos ficticios .
Sugerencia
En lugar de crear manualmente el archivo mocks, puede usar MockGeneratorPlugin
para generar el archivo ficticio en función de las solicitudes interceptadas.
En la siguiente configuración se muestran dos respuestas ficticias para recuperar información sobre el usuario actual. Al solicitar información sobre el usuario actual, el proxy responde con una respuesta ficticia. Al solicitar la información sobre la foto del usuario, el proxy devuelve un 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
}
}
]
}
Prioridad del orden
Los simulacros se coinciden en el orden en que se definen en el mocks.json
archivo. Si define varias respuestas con la misma dirección URL y el mismo método, se usa la primera respuesta coincidente.
Cuando se usa la siguiente configuración, el proxy responde a todas las GET
solicitudes a https://graph.microsoft.com/v1.0/me/photo
con 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
}
}
]
}
Compatibilidad con caracteres comodín
El proxy admite el uso de caracteres comodín en la propiedad URL. Puede usar el carácter asterisco (*
) para que coincida con cualquier serie de caracteres de la dirección URL.
Cuando se usa la siguiente configuración, el proxy responde a todas las solicitudes para obtener el perfil de cualquier usuario con la misma respuesta.
{
"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"
}
}
}
Cuando se usa la siguiente configuración, el proxy devuelve la misma imagen del disco cuando se solicita obtener el binario de la foto de cualquier usuario.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*/photo/$value"
},
"response": {
"body": "@picture.jpg",
"headers": [
{
"name": "content-type",
"value": "image/jpeg"
}
]
}
}
Cuando se usa la siguiente configuración, el proxy devuelve la misma respuesta cuando se solicita obtener el perfil del usuario actual con cualquier parámetro de cadena 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 con el contenido de un archivo
Para mantener el archivo ficticio limpio y organizado, puede almacenar el contenido de la respuesta en un archivo independiente y hacer referencia a él en el archivo ficticio. Para indicar al Proxy de desarrollo, para cargar el cuerpo de respuesta ficticio desde un archivo, establezca la body
propiedad en @
seguida de la ruta de acceso del archivo relativa al archivo ficticio.
Por ejemplo, la siguiente configuración de respuesta ficticia, indica al proxy de desarrollo que responda a cualquier solicitud a https://graph.microsoft.com/v1.0/me
con el contenido del response.json
archivo ubicado en la misma carpeta que el archivo ficticio.
{
"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"
}
]
}
}
El uso de @
-token funciona con archivos binarios y de texto.
Compatibilidad con Microsoft Graph Batch
Dev Proxy admite la simulación de respuestas que se envían en solicitudes por lotes a Microsoft Graph.
No hay requisitos especiales para incluir respuestas a solicitudes por lotes en los archivos ficticios, pero si una solicitud no coincide con una respuesta simulada, se devuelve una 502 Bad Gateway
respuesta.
Soporte técnico de solicitudes no agrupadas
El proxy de desarrollo admite la iniciación de un error cuando el proxy intercepta una solicitud no detectada. La capacidad de producir errores en las solicitudes no agrupadas es útil para identificar las solicitudes que perdiste en el archivo ficticio.
Para habilitar esta característica, agregue y habilite la blockUnmockedRequests
configuración en la sección MockResponsePlugin config del archivo devproxyrc .
{
"mocksPlugin": {
"mocksFile": "mocks.json",
"blockUnmockedRequests": true
}
}
Cuando se intercepta una solicitud no agrupada, se devuelve una 502 Bad Gateway
respuesta.
Paso siguiente
Obtenga más información sobre MockResponsePlugin.
Ejemplos
Consulte también los ejemplos relacionados del proxy de desarrollo: